1.關閉MySQL
[root@vm-vc02 ~]# service mysql stop
2.移動mysql默認的數據文件到/data/下
[root@vm-vc02 ~]# mv /var/lib/mysql /data/
3.修改mysql配置文件/etc/my.cnf
修改# datadir = .....
為datadir = /data/mysql/
修改# socket = .....
為socket = /data/mysql/mysql.sock
4.檢查SELinux狀態(CentOS必須)
[root@vm-vc02 ~]# getenforce
若收到的返回值為”Permissive”或者”Disabled”,則此步驟結束,直接進入下一步。
若收到的返回值為”Enforcing”,則調整SELinux參數以接受MySQL配置的更新:
安裝policycoreutils-python
[root@vm-vc02 ~]# yum provides /usr/sbin/semanage
[root@vm-vc02 ~]# yum whatprovides /usr/sbin/semanage
[root@vm-vc02 ~]# yum -y install policycoreutils-python
這里要注意,semanage使用的是python2.X,因為本機的環境默認是python3.X,所以要修改semanage配置文件/usr/sbin/semanage,文件頭改成python2.X.
#! /usr/bin/python -Es改為
#! /usr/bin/python2.6 –Es
運行semanage命令,為新的mysql數據文件路徑添加上下文映射
[root@vm-vc02 ~]# semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
使上面的映射生效
[root@vm-vc02 ~]# restorecon -Rv /data/mysql
5.啟動MySQL
[root@vm-vc02 ~]# service mysql start
如果這一步失敗,可以disable掉selinux,重啟服務器后重新用semanage設置selinux狀態:
[root@vm-vc02 ~]# vi /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
[root@vm-vc02-SR910 ~]# reboot
服務器重啟后再次修改selinx配置文件,修改SELINUX=enforcing
啟動mysql
[root@vm-vc02 ~]# service mysql start
6.查看mysql進程,檢查配置是否生效
[root@vm-vc02 ~]# ps -ef | grep mysql
root 10304 1 0 13:54 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/data/mysql/ --pid-file=/data/mysql//vm-vc02-SR910.pid
mysql 10651 10304 0 13:54 pts/0 00:00:01 /usr/sbin/mysqld --basedir=/usr --datadir=/data/mysql/ --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/data/mysql//vm-vc02-SR910.err --pid-file=/data/mysql//vm-vc02-SR910.pid --socket=/data/mysql/mysql.sock --port=3306
root 10710 3269 0 14:32 pts/0 00:00:00 grep mysql
[root@vm-vc02 ~]#
7.操作驗證
登錄mysql,新建數據庫/新建表進行驗證,操作都順利完成的話,mysql數據文件路徑修改
完成。
參考文獻:http://crashmag.net/change-the-default-mysql-data-directory-with-selinux-enabled
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。