Centos 系列已经结束了,推荐使用平替 AlmaLinux 系列,几乎没有区别!

Centos 8 和 AlmaLinux 8 自带的是 MySQL 8.0,如果不小心安装了就需要先卸载再安装 MySQL5.7。

卸载MySQL8

在CentOS 8上卸载MySQL 8,可以按照以下步骤进行:

  1. 停止MySQL服务: 首先,需要停止正在运行的MySQL服务。可以通过以下命令来停止服务:
    sudo systemctl stop mysqld
    
  2. 卸载MySQL软件包: 使用yum包管理器来卸载MySQL软件包。运行以下命令以卸载MySQL 8:
    sudo yum remove mysql-server
    

    如果有其他相关的MySQL软件包,如mysql-client,也可以一并卸载:

    sudo yum remove mysql-client
    
  3. 删除MySQL数据和配置文件: 卸载软件包后,需要手动删除MySQL的数据库文件和配置文件。运行以下命令来删除这些文件:
    sudo rm -rf /var/lib/mysql
    sudo rm /etc/my.cnf
    

    请注意,这些操作将永久删除所有数据库和配置信息,请务必在执行前备份重要数据。

  4. 清理系统中的残余文件: 为了彻底卸载MySQL,还需要清理系统中可能残留的MySQL文件。可以运行以下命令来删除残余文件:
    sudo rm -rf /var/log/mysql
    sudo rm -rf /var/run/mysqld
    
  5. 确认MySQL是否已完全卸载: 最后,可以通过运行以下命令来确认MySQL是否已成功卸载:
    mysql --version
    

    如果命令返回“command not found”,则表示MySQL已成功卸载。

请注意,在执行卸载操作之前,强烈建议备份重要的数据库和配置文件,以防万一。此外,卸载过程中应谨慎操作,避免误删其他重要文件。

安装MySQL5.7

一、检查并卸载已有的MySQL或MariaDB

  1. 使用以下命令检查是否已安装MySQL或MariaDB:
    rpm -qa | grep mysql
    rpm -qa | grep mariadb
    

    如果发现有安装,请使用yum remove命令卸载。

二、下载并安装MySQL 5.7

  1. 下载MySQL 5.7的YUM源:
    wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    
  2. 安装下载的YUM源:
    yum localinstall mysql57-community-release-el7-11.noarch.rpm
    
  3. 禁用默认的MySQL 8.0模块(如果已启用),并启用MySQL 5.7模块:
    yum module disable mysql
    yum-config-manager --enable mysql57-community
    
  4. 安装MySQL服务器:
    yum install -y mysql-community-server --nogpgcheck
    

    这一步如果遇到 Error: GPG check FAILED 问题,需要先执行下面的命令

    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
    

    再执行上面的安装命令就不会报错了。

  5. 修改数据库默认编码
    vim /etc/my.cnf
    

    补充下面这一行:

    [mysqld]
    character-set-server=utf8
    

三、启动和配置MySQL

  1. 启动MySQL服务:
    systemctl start mysqld
    
  2. 设置MySQL开机自启:
    systemctl enable mysqld
    
  3. 获取初始密码并登录MySQL(初始密码位于/var/log/mysqld.log文件中):
    grep 'temporary password' /var/log/mysqld.log
    mysql -uroot -p
    
  4. 修改root密码并设置新密码(请确保密码符合复杂度要求):
    -- 如果需要设置简单密码,需要先调整为LOW
    SET GLOBAL validate_password_policy = LOW;
       
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    
  5. 开放MySQL的远程访问端口3306:
    mysql> use mysql
    mysql> update user set host='%' where user ='root';
    mysql> FLUSH PRIVILEGES;
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
    mysql> FLUSH PRIVILEGES;
    

    如果使用防火墙,需要开放3306端口,建议只允许指定ip访问

    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="x.x.x.x" port protocol="tcp" port="3306" accept'
    firewall-cmd --reload
    

四、测试连接

  1. 使用新密码测试连接到MySQL:
    mysql -uroot -p
    

注意事项

  • 确保按照上述步骤操作,并注意替换“新密码”为你自己的密码。
  • 如果在安装过程中遇到问题,可以查看日志文件/var/log/mysqld.log以获取更多信息。