IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

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

YOYO'S BLOG 2010-10-27 20:01:11 累计浏览 2,993 次
本机暂存

    由于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. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. 用Hyer来进行网站的抓取 (累计阅读 158,252)
  2. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,400)
  3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
  4. Mysql监控指南 (累计阅读 21,352)
  5. 由浅入深探究mysql索引结构原理、性能分析与优化 (累计阅读 16,523)
  6. Linux如何统计进程的CPU利用率 (累计阅读 16,308)
  7. 我的 RHCA 之路 (累计阅读 14,013)
  8. Linux内存点滴 用户进程内存空间 (累计阅读 13,232)
  9. 给程序员新手的一些建议 (累计阅读 13,090)
  10. 在Apache2.2.XX下安装Mod-myvhost模块 (累计阅读 13,058)