发现网上的方法都不能成功,有一些permission的问题。可能是SELinux造成的。
尝试使用mv和ln的方法
service mysqld stop
mv /var/lib/mysql/* /home/data/mysql/ #移动数据
ln -s /home/data/mysql/ /var/lib/mysql/ #创建软连接
service mysqld start #启动mysql
然而结果是
[root@slave02 lib]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
....... #一直停在这里
在长久的等待后
[root@slave02 lib]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
Job for mysqld.service failed because a timeout was exceeded. See "systemctl status mysqld.service" and "journalctl -xe" for details.
selinux
[root@slave02 lib]# getenforce
Enforcing
[root@slave02 lib]# ls -Zl /var/lib/mysql
lrwxrwxrwx. 1 unconfined_u:object_r:mysqld_db_t:s0 mysql mysql 17 Mar 3 14:27 /var/lib/mysql -> /home/data/mysql/
在另一台正常安装mysql的机器上尝试:
[root@slave01 lib]# ls -Zl /var/lib/mysql
total 110604
-rw-rw----. 1 system_u:object_r:mysqld_db_t:s0 mysql mysql 56 Mar 3 14:27 auto.cnf
-rw-rw----. 1 system_u:object_r:mysqld_db_t:s0 mysql mysql 12582912 Mar 3 14:27 ibdata1
-rw-rw----. 1 system_u:object_r:mysqld_db_t:s0 mysql mysql 50331648 Mar 3 14:27 ib_logfile0
-rw-rw----. 1 system_u:object_r:mysqld_db_t:s0 mysql mysql 50331648 Mar 3 14:26 ib_logfile1
drwx------. 2 system_u:object_r:mysqld_db_t:s0 mysql mysql 4096 Mar 3 14:26 mysql
srwxrwxrwx. 1 system_u:object_r:mysqld_var_run_t:s0 mysql mysql 0 Mar 3 14:27 mysql.sock
drwx------. 2 system_u:object_r:mysqld_db_t:s0 mysql mysql 4096 Mar 3 14:26 performance_schema
查到一篇文章CHANGE THE DEFAULT MYSQL DATA DIRECTORY WITH SELINUX ENABLED,但是我懒得了,我要用暴力方法。
关闭SELinux:
1、快速关闭SElinux,使用如下命令就可以:
/usr/sbin/setenforce 0 立刻关闭 SELINUX
/usr/sbin/setenforce 1 立刻启用 SELINUX
2、加到系统默认启动里面
echo "/usr/sbin/setenforce 0" >> /etc/rc.local
3、可以编辑配置文件达到同样的目的
vi /etc/selinux/conf
set SELINUX=disabled
网友评论