在centOS中,mysql数据库文件默认放在/var/lib,有时候这个分区比较小,需要将其迁移到比较大的分区,方法如下

0、暂停mysql数据库服务。

1、停掉mysql服务,将/var/lib/mysql目录复制到新的目录中,例如/home/mysql 
cp -R /var/lib/mysql /home/

2、修改/etc/my.conf,找到如下两行:

datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
改成 
datadir=/home/mysql 
socket=/home/mysql/mysql.sock

3、重启mysql服务。

然后蹦了……

服务启动了,但是mysql命令不能用,提示:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

解决的方法一:(这个对于一些php以及其他程序访问还是很有用的)

ln –s /data/mysql/mysql.sock /var/lib/mysql/

做完软连接,重新启动mysql服务,再次通过mysql程序连接,没有问题,能够连上了。


那说明就是这里的问题了。


方法二:事实上不做软链接也是能够的,仅仅须要在/etc/my.cnf里加入[mysql]字段指定socket的位置到我们转移后的位置就可以
(这个对于mysql命令比较有效。)
[mysql] 
socket=/data/mysql/mysql.sock

方法三:改动权限(我也不知道为啥没有效果。。。)

chown -R mysql:mysql /data/mysql/
chmod 660 /data/mysql/test/*

以上几种方法经过试验还是切实可行的,希望对大家更改文件夹有帮助。