在CentOS系统中部署MySQL5.6是很多开发者和运维人员会遇到的操作,安装过程中稍不注意就会出现各类报错,导致安装中断或者服务无法正常启动。下面先给大家展示一张安装流程的参考示意图:

常见安装报错场景及解决方法
1. 依赖包缺失报错
安装时如果提示类似error: Failed dependencies: libaio.so.1 is needed by mysql-community-server的报错,说明系统缺少必要的依赖包。CentOS默认源中可能没有部分依赖,需要先安装对应依赖:
# 安装MySQL5.6需要的依赖包 yum install -y libaio perl numactl # 如果还是提示缺少其他依赖,可以根据报错信息逐个安装对应的包
2. 已存在旧版本MySQL或MariaDB冲突
如果提示mysql-community-libs conflicts with mysql-libs这类冲突报错,说明系统中已经安装了旧版本的MySQL或者CentOS默认的MariaDB,需要先卸载冲突的包:
# 查看已安装的MySQL相关包 rpm -qa | grep mysql # 查看已安装的MariaDB相关包 rpm -qa | grep mariadb # 卸载查到的冲突包,比如卸载mariadb-libs rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
3. 服务启动失败报错
安装完成后执行systemctl start mysqld提示启动失败,可以查看日志定位问题:
# 查看MySQL错误日志 tail -f /var/log/mysqld.log
如果是提示Can't find file: './mysql/user.frm',通常是数据目录权限有问题,执行以下命令修复:
# 修改MySQL数据目录权限 chown -R mysql:mysql /var/lib/mysql # 重新初始化数据目录 mysql_install_db --user=mysql --datadir=/var/lib/mysql # 再次尝试启动服务 systemctl start mysqld
4. 初始密码相关问题
MySQL5.6安装完成后默认会生成临时密码,如果提示密码错误无法登录,可以先查看临时密码:
# 查看MySQL初始临时密码 grep 'temporary password' /var/log/mysqld.log
如果日志中没有临时密码,可以修改配置文件跳过密码验证:
# 编辑MySQL配置文件 vim /etc/my.cnf # 在[mysqld]模块下添加以下配置 skip-grant-tables # 重启服务 systemctl restart mysqld # 此时可以直接无密码登录,登录后修改密码即可
完整的正确安装流程参考
为了避免安装过程中报错,建议按照以下标准流程操作:
- 第一步:卸载系统中已有的冲突MySQL或MariaDB包
- 第二步:安装MySQL5.6需要的依赖包
- 第三步:下载MySQL5.6的YUM源或者RPM包,这里以RPM包安装为例
- 第四步:按顺序安装MySQL的RPM包,先装common,再装libs,然后装client,最后装server
- 第五步:启动MySQL服务,查看初始密码并登录修改密码
- 第六步:设置MySQL开机自启,完成基础配置
以下是按顺序安装RPM包的示例命令:
# 假设已经下载了以下四个RPM包到当前目录 rpm -ivh mysql-community-common-5.6.51-2.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.6.51-2.el7.x86_64.rpm rpm -ivh mysql-community-client-5.6.51-2.el7.x86_64.rpm rpm -ivh mysql-community-server-5.6.51-2.el7.x86_64.rpm
如果按照上述流程操作还是遇到其他报错,可以根据具体的报错信息搜索对应的解决方案,大部分报错都是依赖、冲突或者权限问题导致的,耐心排查即可解决。