CentOS 7 安装 MySQL 8.0 部署文档

CentOS 7 安装 MySQL 8.0 部署文档

1. 安装 MySQL
  1. 添加 MySQL Yum 仓库:

    sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    
  2. 安装 MySQL 服务:

    sudo yum install --nogpgcheck mysql-community-server
    
2. 初始化 MySQL
  1. 初始化数据库:

    mysqld --initialize --user=mysql --lower-case-table-names=1
    
  2. 记录 root 密码:
    查看 /var/log/mysqld.log 文件获取自动生成的临时 root 密码。

    grep "password" /var/log/mysqld.log
    
3. 修改 /etc/my.cnf 配置文件
  1. 编辑配置文件:

    vi /etc/my.cnf
    
  2. 添加配置:
    [mysqld] 下添加:

    lower-case-table-names=1
    default-time_zone='+8:00'
    max_connections=1000
    max_connect_errors=1000
    default-authentication-plugin=mysql_native_password
    character-set-server=utf8
    sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
    

    [client][mysql] 下添加:

    default-character-set=utf8
    
4. 启动 MySQL 服务
systemctl start mysqld
5. 修改数据库 root 密码及创建全域 root 用户
  1. 登录 MySQL:
    使用记录的临时密码登录。

    mysql -u root -p
    
  2. 修改 root 用户密码:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'QWER1234@';
    
  3. 创建全域 root 用户:

    CREATE USER 'root'@'%' IDENTIFIED BY 'QWER1234@';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
    FLUSH PRIVILEGES;
    
  4. 更改权限:

    UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE user ='root' AND host='%'; 
    FLUSH PRIVILEGES;
    
6. 配置修改
  • 重启 MySQL 服务:

    systemctl restart mysqld
    
  • 验证配置:
    使用相应的验证 SQL 语句来确认配置的修改。

7. 更改数据文件存储位置
  1. 停止 MySQL 服务:

    systemctl stop mysqld
    
  2. 创建新的数据存储路径:

    mkdir -p /home/data/mysql
    mv /var/lib/mysql/* /home/data/mysql/
    
  3. 修改 /etc/my.cnf 配置:
    [mysqld] 下修改 datadirsocket 路径。

    datadir=/home/data/mysql
    socket=/home/data/mysql/mysql.sock
    

    [client] 下添加:

    socket=/home/data/mysql/mysql.sock
    
  4. 启动 MySQL 服务:

    systemctl start mysqld
    

确保MySQL服务能够顺畅运行,还需要确保相关的文件和目录权限设置正确。在更改数据文件存储位置后,特别需要注意这一点,因为操作系统的安全策略可能会阻止MySQL服务访问新的数据目录。

确保正确的权限设置

在移动数据文件并更改my.cnf配置后,需要确保新的数据目录(/home/data/mysql)拥有正确的拥有者(通常是mysql用户)和权限设置,以便MySQL服务能够访问和修改这些文件。

设置目录权限
  1. 更改数据目录的拥有者:
    使用chown命令将新数据目录的拥有者更改为mysql用户和组。这一步确保了MySQL服务有权访问该目录及其中的文件。

    chown -R mysql:mysql /home/data/mysql
    
  2. 检查并设置目录权限:
    使用chmod命令确保目录具有正确的权限。通常,目录应该设置为700权限,文件设置为660权限,这样只有拥有者(即mysql用户)才能访问。

    find /home/data/mysql -type d -exec chmod 700 {} \;
    find /home/data/mysql -type f -exec chmod 660 {} \;
    
配置SELinux(如果启用)

如果您的系统启用了SELinux(安全增强型Linux),还需要更新SELinux策略,以允许MySQL服务访问新的数据目录。可以使用semanage命令来添加必要的策略规则:

semanage fcontext -a -t mysqld_db_t "/home/data/mysql(/.*)?"
restorecon -Rv /home/data/mysql

这些命令设置了SELinux上下文,使得MySQL服务能够访问/home/data/mysql目录。

重启MySQL服务

完成上述步骤后,您可以重新启动MySQL服务来应用更改:

systemctl restart mysqld
验证服务状态

验证MySQL服务是否成功启动,并且能够正常访问新的数据目录:

systemctl status mysqld

如果服务启动成功,并且没有错误信息,那么您已经成功地将MySQL的数据文件移动到了新的位置,并且正确设置了所有必要的权限和SELinux策略(如果适用)。

通过遵循这些步骤,您可以确保MySQL服务在CentOS 7系统上安全、稳定地运行,同时也能够灵活地管理数据存储的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ascarl2010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值