答案:修改MySQL数据存储路径需先停止服务,复制数据到新目录并设置权限,更新配置文件中的datadir和socket路径,调整SELinux安全上下文(Linux),最后重启服务并验证路径生效。
在 MySQL 中修改数据存储路径,主要是通过更改其数据目录(datadir)来实现。这个操作适
用于希望将数据库文件存放到其他磁盘分区、提高性能或进行备份管理的场景。以下是具体配置步骤和注意事项。
在修改数据路径前,必须先停止 MySQL 服务,避免数据损坏。
sudo systemctl stop mysql
打开“服务”管理器,找到 MySQL 服务,右键选择“停止”,或运行命令:
net stop MySQL
将原数据目录完整复制到目标位置,确保权限和完整性。
SHOW VARIABLES LIKE 'datadir';
sudo cp -R /var/lib/mysql /data/
sudo chown -R mysql:mysql /data/mysql
sudo chmod -R 750 /data/mysql
编辑 MySQL 的主配置文件 my.cnf 或 my.ini(Windows),更新 datadir 指向新路径。
/etc/my.cnf 或 /etc/mysql/my.cnf
C:\ProgramData\MySQL\MySQL Server x.x\my.ini
在 [mysqld] 段落中修改或添加:
datadir = /data/mysql
socket = /data/mysql/mysql.sock
[client]
socket = /data/mysql/mysql.sock
某些 Linux 发行版(如 CentOS/RHEL)使用 SELinux,需确保新目录有正确安全上下文。
sudo semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
sudo restorecon -R /data/mysql
另外,确保 MySQL 用户对新路径有读写权限。
重新启动服务并检查是否正常运行。
sudo systemctl start mysql
登录 MySQL,再次执行:
SHOW VARIABLES LIKE 'datadir';
确认返回的是新路径。
检查错误日志(通常位于 datadir 下的 hostname.err)排查启动失败问题。
基本上就这些。只要数据复制完整、权限设置正确、配置无误,MySQL 就能顺利使用新存储路径。操作前建议备份原数据目录,防止意外发生。