在 MySQL 中修改数据存储位置,主要是通过更改数据目录(datadir)来实现。这个目录存放数据库文件、表结构、日志等核心数据。如果你需要调整磁盘空间、提升性能或做数据迁移,可以按以下步骤操作。
1. 查看当前数据存储位置
登录 MySQL 后执行:
SHOW VARIABLES LIKE 'datadir';会返回类似 /var/lib/mysql/ 的路径,这就是当前的数据存储目录。
2. 停止 MySQL 服务
在修改前必须先停止服务,避免数据损坏:
sudo systemctl stop mysql或根据系统使用:
sudo service mysql stop3. 迁移现有数据到新位置
假设你想把数据移到 /data/mysql:
sudo mkdir -p /data/mysqlsudo cp -R /var/lib/mysql/. /data/mysql/
sudo chown -R mysql:mysql /data/mysql
sudo chmod -R 750 /data/mysql
确保权限正确,MySQL 用户必须能读写新目录。
4. 修改配置文件指向新路径
编辑 MySQL 配置文件,通常位于:
/etc/mysql/mysql.conf.d/mysqld.cnf(Ubuntu/Debian) /etc/my.cnf 或 /etc/mysql/my.cnf(CentOS/RHEL)找到 [mysqld] 段落,修改或添加:
datadir = /data/mysql如果使用 AppArmor 或 SELinux,还需额外配置权限策略。
5. 启动 MySQL 并验证
保存配置后启动服务:
sudo systemctl start mysql再次登录 MySQL 执行:
SHOW VARIABLES LIKE 'datadir';确认返回的是新路径。检查所有数据库是否正常访问。
基本上就这些。只要权限和配置写对,迁移过程很稳定。注意备份原数据以防出错。
