IT技术博客大学习 共学习 共进步

Linux(CentOS)下更改/转移MySQL数据库目录

YOYO'S BLOG 2010-10-27 20:01:11 累计浏览 2,925 次

    由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录。网上有很多相关的文章写到转移数据库目录的文章,不过大部分都是相互之间转载的,而且转载的过程中还会有一些错误,因为大部分人根本就没测试过,所以错误也就顺便一块转载过来了,下面我简单整理一下这几天把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql下面具体操作。

    首先我们需要关闭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

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

建议继续学习

  1. Bash 小技巧:给目录加上书签,快速切换目录 (累计阅读 7,948)
  2. php 返回目录下的所有文件名/文件夹类 (累计阅读 4,305)
  3. 查找当前目录的重复文件 (累计阅读 3,824)
  4. linux文件目录操作总结 (累计阅读 3,604)
  5. bash遍历目录 (累计阅读 3,524)
  6. apache配置(如何禁止列出目录内容) (累计阅读 3,347)
  7. MySql重启命令与数据库安装目录 (累计阅读 3,265)
  8. 递归创建目录的一个函数 (累计阅读 3,126)
  9. FREEBSD 建目录上限 (累计阅读 3,104)
  10. 记一个php函数dirname (累计阅读 2,944)