Linux Centos 迁移Mysql 数据位置

2016-08-30 01:42:29 6247

下面我整理一下把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql目录的具体操作: 

1、首先我们需要关闭MySQL,命令如下: 
service mysqld stop 
2、然后是转移数据,为了安全期间,我们采用复制命令cp,先找到mysql的原目录 
cd /var/lib 
ls 
运行这个命令之后就会看到mysql的目录了,然后执行cp命令 
cp -a mysql /home/mysql_data/ #这样就把数据库复制到/home/mysql_data下面去了 

注意:(-a这个参数一定要带着,否则复制过去的权限就不对了。) 

如果数据库比较大的话,时间会比较长,可能会超时,具体怎么设置ssh不超时的办法,请大家自己找相关资料。 
3、然后我们修改配置文件,一共有三个,下面我一一说明: 
修改第一个文件:修改之前先备份cp /etc/my.cnf /etc/my.cnfbak 
vi /etc/my.cnf 
打开之后修改datadir的目录为/home/mysql_data/mysql 
把socket改成/home/mysql_data/mysql/mysql.sock #为了安全起见,你可以把原来的注释掉,然后重新加入一行,改成现在的目录。 
================================================================================== 
修改第二个文件:修改之前先备份 cp /etc/init.d/mysqld /etc/init.d/mysqldbak 
vi /etc/init.d/mysqld 
注意:准确的位置是/etc/rc.d/init.d/mysqld,由于这里这里有一个/etc/init.d到/etc/rc.d/init.d的映射, 
所以用上面的命令即可,也简单。 
把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:/home/mysql_data/mysql 
================================================================================= 
修改第三个文件:修改之前先备份 cp /usr/bin/mysqld_safe /usr/bin/mysqld_safebak 
vi /usr/bin/mysqld_safe 
这里也是修改datadir的目录为/home/mysql_data/mysql 
================================================================================== 
4、下面需要建立一个mysql.sock的链接: 
ln -s /home/mysql_data/mysql/mysql.sock /var/lib/mysql/mysql.sock 

至此所有的修改都完成了,下面启动mysql 
service mysqld start 
或者重启linux 
reboot 
如果能正常启动,说明修改成功。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: