CentOS中安装数据库

1.下载

网址:https://dev.mysql.com/downloads/mysql/

按如图选择,然后点击Download

这里它让我们登录,我们直接选择不登录,直接下载

2.关闭防火墙

shell 复制代码
systemctl disable firewalld

3.正式安装

  1. 切换到/usr/local
shell 复制代码
cd /usr/local
  1. 创建mysql文件夹,并进入里面
shell 复制代码
mkdir mysql ; cd mysql
  1. 将刚刚下载好的安装包导入里面,并解压
shell 复制代码
tar -xvf mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz
  1. 重命名文件夹为:mysql-8.0
shell 复制代码
mv mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz mysql-8.0
  1. /usr/local/mysql文件夹下创建data文件夹,存储文件
shell 复制代码
mkdir data
  1. 创建用户组、用户和密码

    shell 复制代码
    groupadd mysql
    useradd -g mysql mysql
  2. 授权刚刚创建的用户

    shell 复制代码
    chown -R mysql:mysql /usr/local/mysql/mysql-8.0
  3. 配置环境,编辑/etc/profile文件

    shell 复制代码
    vim /etc/profile

    在最后一行加上:

    shell 复制代码
    export PATH=$PATH:/usr/local/mysql/mysql-8.0/bin:/usr/local/mysql/mysql-8.0/lib
  4. 使配置文件生效

    shell 复制代码
    source /etc/profile
  5. 编辑my.cnf文件

    shell 复制代码
    vim /etc/my.cnf

    加入以下信息

    shell 复制代码
    [mysql]
    default-character-set=utf8
    [client]
    socket=/var/lib/mysql/mysql.sock
     
    [mysqld]
    port=3306
    user=mysql
    general_log = 1
    general_log_file= /var/log/mysql/mysql.log
    socket=/var/lib/mysql/mysql.sock
    basedir=/usr/local/mysql/mysql-8.0
    datadir=/usr/local/mysql/data
    log-bin=/usr/local/mysql/data/mysql-bin
    innodb_data_home_dir=/usr/local/mysql/data
    innodb_log_group_home_dir=/usr/local/mysql/data/
    character-set-server=utf8mb4
    lower_case_table_names=1
    autocommit=1
    default_authentication_plugin=mysql_native_password
    symbolic-links=0
     
    [mysqld_safe]
    log-error=/usr/local/mysql/data/mysql.log
    pid-file=/usr/local/mysql/data/mysql.pid
  6. 切换到/usr/local/mysql/mysql-8.0/bin

    shell 复制代码
    cd /usr/local/mysql/mysql-8.0/bin
  7. 安装libaio环境

    shell 复制代码
    yum install -y libaio
  8. 初始化基础信息,得到数据库的初始密码(在/usr/local/mysql/mysql-8.0/bin目录下执行)

    shell 复制代码
     ./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql/data/ --initialize
  9. 将mysqld服务添加到系统中,并赋予权限

    shell 复制代码
    cd /usr/local/mysql/mysql-8.0
    cp -a ./support-files/mysql.server /etc/init.d/mysql
    
    chown 777 /etc/my.cnf
    chmod +x /etc/init.d/mysql
    chkconfig --add mysql
  10. 检查一下/var/lib/mysql是否存在,否则进行创建

    shell 复制代码
    mkdir /var/lib/mysql
  11. 赋予其权限

    shell 复制代码
    chown -R mysql:mysql /var/lib/mysql
  12. 启动数据库

    shell 复制代码
    systemctl start mysql # 启动mysql
    systemctl status mysql # 查看mysql状态

    进入数据库

    sql 复制代码
    mysql -u root -p

    输入刚刚初始化好的密码:V:s:pkjCm9AO

    成功进入!

  13. 重置root密码

    这里我设成了与Linux登录密码一致

    sql 复制代码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456qqq.';
  14. 配置root远程登录

    sql 复制代码
    # 第一次设置root远程登录,并配置远程密码使用如下SQL命令
    create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
    
    # 后续修改密码使用如下SQL命令
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

    远程登录成功!

  15. 退出MySQL控制台界面

    sql 复制代码
    exit # 退出命令
    
    # 或者通过快捷键退出:ctrl + d
  16. MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

    shell 复制代码
    netstat -anp | grep 3306

4.补充

MySQL 8.0中,root用户默认不能直接创建数据库。这是因为MySQL 8.0引入了一个新的安全功能,即用户只能对自己拥有的数据库进行操作。

  1. 使用 CREATE USER 命令创建一个新用户,并赋予该用户对指定数据库的所有权限。例如,创建一个名为 newuser 的用户,并许其在所有数据库上创建表和数据库:

    mysql 复制代码
    CREATE USER 'newuser'@'%' IDENTIFIED BY 'your password';
    
    GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' WITH GRANT OPTION;
    
    # 刷新权限,生效
    FLUSH PRIVILEGES;
  2. 如果需要让root用户能够直接创建数据库,可以修改mysql 库中的user 表,将root 用户的Host字段设置为%,并将 create_priv 字段的值设置为Y。请注意,这种方法会降低系统的安全性不建议在生产环境中使用。

相关推荐
锐策4 小时前
〔 MySQL 〕数据库基础
数据库·mysql
舞动CPU4 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
日月星宿~5 小时前
【MySQL】summary
数据库·mysql
秦jh_6 小时前
【Linux】多线程(概念,控制)
linux·运维·前端
希忘auto7 小时前
详解MySQL安装
java·mysql
运维佬7 小时前
在 MySQL 8.0 中,SSL 解密失败,在使用 SSL 加密连接时出现了问题
mysql·adb·ssl
Runing_WoNiu7 小时前
MySQL与Oracle对比及区别
数据库·mysql·oracle
天道有情战天下7 小时前
mysql锁机制详解
数据库·mysql
CodingBrother7 小时前
MySQL 中单列索引与联合索引分析
数据库·mysql
keep__go8 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell