方法一:

以前都是改/etc/my.cnf,再将数据文件移到新的目录下,操作起来比较烦,且易出错,今天学习了一种新的方法,再此记录和分享。

1.停掉mysql

service mysqld stop 
2.移动数据文件到新目录下 mv /var/lib/mysql /data/sas0/ 
3.连接目录 cd /var/lib/ ln -s /data/sas0/mysql 
4.启动数据库 service mysqld start


方法二:


首先我们需要关闭MySQL,命令如下:

 

#service mysqld stop

  网上有很多人都是用的mysqladmin -u root -p shutdown,不过我这个是系统安装的是kloxo面板,root密码并不知道,虽然可以重置,但是比较麻烦。

  然后是转移数据,为了安全期间,我们采用复制的命令cp,先找到mysql的原目录

  

#cd /var/lib
  #ls

  运行这个命令之后就会看到mysql的目录了,然后执行cp命令

#cp -a mysql /home/mysql_data/

  这样就把数据库复制到/home/mysql_data下面去了,注意-a这个参数一定要带着,否则复制过去的权限就不对了。如果数据库比较大的话,时间会比较长,可能会超时,具体怎么设置ssh不超时的办法,请看我的上一篇文档。

  然后我们修改配置文件,一共有三个,下面我一一说明:

#vi /etc/my.cnf

  打开之后修改datadir的目录为/home/mysql_data/mysql,把socket改成/home/mysql_data/mysql/mysql.sock,为了安全起见,你可以把原来的注释掉,然后重新加入一行,改成现在的目录。

#vi /etc/init.d/mysqld

  准确的位置是/etc/rc.d/init.d/mysqld,由于这里这里有一个/etc/init.d到/etc/rc.d/init.d的映射,所以用上面的命令即可,也简单。这里主要也是修改datadir的目录为/home/mysql_data/mysql

#vi /usr/bin/mysqld_safe

  这里也是修改datadir的目录

  下面需要建立一个mysql.sock的链接:

#ln -s /home/mysql_data/mysql/mysql.sock /var/lib/mysql/mysql.sock

  至此所有的修改都完成了,下面启动mysql

#service mysqld start

  或者重启linux

#reboot

  如果能正常启动,那基本上就没什么问题了。