下面将详细讲解“CentOS 6.5 中 RPM 包安装 MySQL 5.7 初始化出错的解决方法”的完整攻略,包含以下内容:
问题描述
在 CentOS 6.5 中通过 RPM 包安装 MySQL 5.7,执行初始化命令时出现如下错误:
ERROR: Unable to start MySQL server:
mysqld: Can't read dir of '/var/lib/mysql/' (Errcode: 13 - Permission denied)
mysqld: [ERROR] Aborting
mysqld: [Note] /usr/sbin/mysqld: Shutdown complete
解决方法
- 创建 MySQL 相关的用户和组
sudo groupadd mysql
sudo useradd -r -g mysql mysql
- 为 MySQL 数据目录设置正确的权限
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod 770 /var/lib/mysql
sudo chmod g+s /var/lib/mysql
- 修改 SELinux 的 security context
sudo semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?"
sudo semanage fcontext -a -t mysqld_log_t "/var/log/mysql(/.*)?"
sudo semanage fcontext -a -t mysqld_tmp_t "/var/tmp/mysql(/.*)?"
sudo restorecon -Rv /var/lib/mysql
sudo restorecon -Rv /var/log/mysql
sudo restorecon -Rv /var/tmp/mysql
- 重新执行初始化命令
sudo mysqld --initialize-insecure
- 启动 MySQL 服务
sudo service mysqld start
示例说明
- 创建 MySQL 相关的用户和组
在 CentOS 6.5 中,MySQL 数据目录的所属用户和组默认为 mysql
。如果系统中没有这个用户和组,则需要手动创建:
sudo groupadd mysql # 创建 mysql 组
sudo useradd -r -g mysql mysql # 创建 mysql 用户,-r 表示创建系统用户
- 为 MySQL 数据目录设置正确的权限
在 CentOS 6.5 中,MySQL 数据目录默认为 /var/lib/mysql
。为了保证 MySQL 对数据目录有完全的访问权限,需要执行如下命令:
sudo chown -R mysql:mysql /var/lib/mysql # 修改所有者和组为 mysql
sudo chmod 770 /var/lib/mysql # 修改权限为 770
sudo chmod g+s /var/lib/mysql # 设置SGID位,新建文件的所属组为 mysql
- 修改 SELinux 的 security context
在 CentOS 6.5 中,SELinux 默认开启,为了让 MySQL 对数据目录、日志目录以及临时目录等有完全的访问权限,需要修改相应的 security context:
sudo semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?" # 添加 MySQL 数据目录的 security context
sudo semanage fcontext -a -t mysqld_log_t "/var/log/mysql(/.*)?" # 添加 MySQL 日志目录的 security context
sudo semanage fcontext -a -t mysqld_tmp_t "/var/tmp/mysql(/.*)?" # 添加 MySQL 临时目录的 security context
sudo restorecon -Rv /var/lib/mysql # 重新设置 MySQL 数据目录的 security context
sudo restorecon -Rv /var/log/mysql # 重新设置 MySQL 日志目录的 security context
sudo restorecon -Rv /var/tmp/mysql # 重新设置 MySQL 临时目录的 security context
- 重新执行初始化命令
重新执行初始化命令,并加上 --initialize-insecure
参数,跳过密码初始化过程:
sudo mysqld --initialize-insecure
- 启动 MySQL 服务
启动 MySQL 服务:
sudo service mysqld start
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:centos6.5中rpm包安装mysql5.7初始化出错的解决方法 - Python技术站