在linux系统下迁移mysql数据库的存储路径,本文将详细介绍如何将mysql数据目录从/var/lib/mysql迁移到/home/data/mysql。
:
迁移步骤::
创建目标目录:: 在/home目录下创建名为data的目录:cd /home; mkdir data
停止MySQL服务:: 确保MySQL服务已停止,以避免数据损坏。使用相应的命令停止服务,例如:service mysql stop 或 systemctl stop mysqld
复制数据目录:: 将/var/lib/mysql目录及其所有内容完整复制到/home/data目录:cp -arp /var/lib/mysql /home/data/mysql (注意:-a 保持文件属性,-r 递归复制,-p 保持权限)
定位并修改配置文件 my.cnf::
查找 my.cnf 配置文件。它可能位于 /etc/my.cnf 或 /usr/share/mysql/ 目录下。 如果在/etc/目录下找不到,则从/usr/share/mysql/目录复制一个配置文件到/etc/目录并重命名为my.cnf。例如:cp /usr/share/mysql/my-medium.cnf /etc/my.cnf编辑 my.cnf 文件:: 使用文本编辑器打开 /etc/my.cnf 文件,找到 [mysqld] 段落,修改 socket 参数。将 socket=/var/lib/mysql/mysql.sock 修改为 socket=/home/data/mysql/mysql.sock。 建议注释掉原有的行,并在下一行添加新的配置,例如:
#socket=/var/lib/mysql/mysql.sock socket=/home/data/mysql/mysql.sock登录后复制
修改MySQL启动脚本:: 编辑MySQL启动脚本,找到 datadir 参数,将其值修改为新的数据目录路径 /home/data/mysql。 修改方式取决于你的系统使用的是哪个启动脚本。
创建符号链接 (可选但推荐):: 创建一个从新路径到旧路径的符号链接,以便旧的应用程序或脚本仍然可以正常工作:ln -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
启动MySQL服务:: 重新启动MySQL服务,例如:service mysql start 或 systemctl start mysqld
重要提示:: 在执行这些步骤之前,请务必备份你的MySQL数据库,以防万一迁移过程中出现问题。 迁移完成后,验证MySQL服务是否正常运行,并检查数据是否完整无误。