在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/*
以上几种方法经过试验还是切实可行的,希望对大家更改文件夹有帮助。