mysql移动目录

By | 2016年3月17日

由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录。
MySql装在/usr/local/mysql下,要把MySQL的data目录从/usr/local/mysql转移到/home/data目录的具体操作:

1、首先我们需要关闭MySQL,命令如下(任选一种合适自已环境的):
   service mysqld stop
   /usr/local/mysql/bin/mysqld stop
   /etc/init.d/mysqld stop
   
2、然后是转移数据,为了安全期间,我们采用复制命令cp,先找到mysql的原目录
   cd /usr/local/mysql
   ls
   运行这个命令之后就会看到mysql的目录了,然后执行cp命令
   cp -a /usr/local/mysql /home/   #这样就把数据库复制到/home/下面去了
   注意:(-a这个参数一定要带着,否则复制过去的权限就不对了。)

3、然后我们修改配置文件,一共有三个,下面我一一说明:
    第一个文件:修改之前先备份cp  /etc/my.cnf    /etc/my.cnfbak
      vi /etc/my.cnf
      打开之后修改datadir的目录为/home/data
      把socket改成/home/data/mysql.sock  #为了安全起见,你可以把原来的注释掉,然后重新加入一行,改成现在的目录。
      如果是编译安装的, 有指定文件夹, 下面的两个文件就不需要改,只需改my.cnf即可,注意,datadir就是mysql内的data目录
    ================================================================================
    修改第二个文件:修改之前先备份 cp /etc/init.d/mysqld    /etc/init.d/mysqld.bak
      vi /etc/init.d/mysqld
      注意:准确的位置是/etc/rc.d/init.d/mysqld,由于这里这里有一个/etc/init.d到/etc/rc.d/init.d的映射,所以用上面的命令即可,也简单。
      把其中datadir=/usr/local/mysql/data 一行中,等号右边的路径改成你现在的实际存放路径:/home/data
    =================================================================================
    修改第三个文件:修改之前先备份 cp /usr/bin/mysqld_safe    /usr/bin/mysqld_safe.bak
      vi /usr/bin/mysqld_safe
      这里也是修改datadir的目录为/home/mysql

4、下面需要建立一个mysql.sock的链接:
   ln -s /home/mysql/mysql.sock    /usr/local/mysql/mysql.sock
    至此所有的修改都完成了,下面启动mysql
    service mysqld start
    或者重启linux
    reboot
    如果能正常启动,说明修改成功。