在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
修改配置
[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时,遇到了这个问题,多次尝试找到的比较合适的解决方案,总结一下给遇到问题的朋友一些参考,若文章有问题的话,希望大家能够给予批评与指正,谢谢。