在CentOS 7系统下,通过rpm和yum命令安装MySQL,一般会采取service mysqld start命令来启动MySQL。在MySQL的配置文件/etc/my.cnf中,默认的data路径是:/var/lib/mysql,socket的默认路径是/var/lib/mysql/mysql.sock。为了数据安全问题,一般会将MySQL的data路径进行修改,在修改路径后,都会遇到一个普遍的问题,service mysqld start命令启动不了,mysql命令无法执行的问题,针对这些问题,下面部分解决方案,以供大家参考。
首先在修改data目录前,先将数据库停止服务 service mysqld stop
在需要移动的目标文件夹下建立目标文件夹 MySQL的data文件存放目录:mkdir /mysqldata/data MySQL的sock文件:mkdir /mysqldata/tmp(默认sock保存在data文件中)
将数据库的文件移动到新的data目录下 mv /var/lib/mysql/* /mysqldata/data
修改MySQL的配置文件 vi/etc/my.conf
修改配置
[mysqld]
datadir=/var/lib/mysql换成 datadir=/mysqldata/data
socket= /mysqldata/tmp/mysql.sock
注意:service mysqld start 启动时通过mysqld_safe进行启动的,同时要修改[mysqld_safe]和[client] [mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
datadir=datadir=/mysqldata/data
socket = /mysqldata/tmp/mysql.sock
[client]
socket = /mysqldata/tmp/mysql.sock
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重新系统 若前面内容全部修改完成后,启动service mysqld start 一直无响应,查看日志会发现错误提示是:vi /var/log/mysqld.log:[Warning] Can't create test file xxx.lower-test,解决方案就是将设置SELINUX=disabled,重启系统,否则在启动MySQL时会被拒绝。
启动MySQL成功: service mysqld start
在安装MySQL时,遇到了这个问题,多次尝试找到的比较合适的解决方案,总结一下给遇到问题的朋友一些参考,若文章有问题的话,希望大家能够给予批评与指正,谢谢。