转载路径:http://jingyan.baidu.com/article/d7130635006f2c13fcf47577.html
MySQL默认的数据文件存储目录为/var/lib/mysql(在Navicat下运行命令查看:show variables like '%datadir%';);
有些时候由于业务量增大导致存储空间不足,我们修改MySQL的目录。
方法/步骤
-
1、
-
创建你要转移到的新目录
-
cd /mnt
mkdir mysql
2、
修改文件夹的宿主为MySQL chown -R mysql:mysql /mnt/mysql
3、
停止MySQL的服务 service mysql stop 或者 /etc/init.d/mysqld stop
4、
拷贝MySQ的文件夹到新目录 cp -rf /var/lib/mysql/* /mnt/mysql/
5、
修改MySQ的配置文件,vi /etc/my.cnf 按如图所示修改为新路径,如果你的配置文件里没有这两行,手动添加到[mysqld]下方
[mysqld]
datadir=/mnt/mysql
socket=/mnt/mysql/mysql.socket -
6、
修改启动文件 vi /etc/init.d/mysqld 将datadir后面修改为你的新路径
get mysql_potion_mysqld datadir"/mnt/mysql" -
7、
此时,重启MySQL服务,service mysqld start 或者 /etc/init.d/mysqld start,至此你的MySQL的已经更换为你的新路径了。
注意事项
更换目录后,你的MySQL如果无法正常启动,请具体参照/var/log/mysqld.log日志进行排查
-
可能出现的问题:
-
120609 11:31:31 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
120609 11:35:12 mysqld_safe Starting mysqld daemon with databases from /mnt/hgfs/mysql_data
120609 11:35:13 [Warning] Can't create test file /mnt/hgfs/mysql_data/data.lower-test
120609 11:35:13 [Warning] Can't create test file /mnt/hgfs/mysql_data/data.lower-test
/usr/libexec/mysqld: Can't change dir to '/mnt/hgfs/mysql_data/' (Errcode: 13)
120609 11:35:13 [ERROR] Aborting120609 11:35:13 [Note] /usr/libexec/mysqld: Shutdown complete
120609 11:35:13 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
问题原因: -
selinux的原因,设置为permissive模式之后正常启动mysqld。
-
[root@data selinux]# getenforce
Enforcing
[root@data selinux]# setenforce 0
[root@data selinux]# getenforce
Permissive
-
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式