mysql数据量太大,所以准备更换mysql安装目录,网上查了下资料,多是转载文章,好多没有实测,因为要用在生产环境中,所以我经过在虚拟机上测试成功,总结了点东西。分享出来希望对大家有帮助。大家都知道Mysql 默认的数据文件存储目录为/var/lib/mysql。而我们要把目录移动到/home/data下需要进行下面几步:

1.在home目录下建立data目录
Suse#cd home
suse:/home #mkdir data
关闭mysql服务进程
Suse#mysqladmin –u root –p shutdown
2.复制mysql 目录
Suse#cd /var/lib
    #cp -a mysql  /home/data/  
//个人认为此处用复制较好,网上好多文档都用mv命令,在实测过时,使用mv没有成功。如果不是在生产环境下大家可以试一试。
3.修改my.cnf配置文件
一般安装的时候,在/etc/目录下会有my.cnf这个文件,如果没有这个文件到/usr/share/mysql下找到*.cnf文件。拷贝其中的一个到
4./etc目录下,并修改名字为my.cnf.
Suse# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
my.cnf文件 suse#vi /etc/my.cnf,找到21行和28行,将原来一行的文件删除或者通过“#”注释掉,改为现在的:
      socket         = /home/data/mysql/mysql.sock
      socket         = /home/data/mysql/mysql.sock
5.修改mysql 启动脚本/etc/init.d/mysql
Suse#vi /etc/init.d/mysql
或者删除或者注释后添加一行
datadir=/home/data/mysql 
6.重新启动mysql服务
Suse#/etc/init.d/mysql start,
或者suse#service mysql start
7.测试
suse:~ # mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 5.0.22-standard-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

结束语:

/home/data删除,重新启动一次mysql服务。如果成功,则继续按照上面步骤做一次,只要步骤正确,肯定会成功。

此实验全部是在SUSE 11 企业版上操作,如果是其他版本可能会有不同。


https://blog.51cto.com/sanmao/671453