MySQL数据目录(datadir)是存储数据库文件的核心路径,调整需谨慎以防服务异常或数据丢失;操作包括确认当前路径、停服备份、复制数据至新目录、修改配置并重启,SELinux环境还需更新安全上下文。

MySQL 数据目录(datadir)是存储数据库文件的核心位置,包括表结构、数据、日志等。调整它通常是为了迁移数据、释放系统盘空间、提升 I/O 性能或统一管理路径。操作本身不难,但必须谨慎,否则会导致 MySQL 无法启动或数据丢失。
确认当前数据目录位置
登录 MySQL 后执行以下命令查看当前 datadir:
mysql> SHOW VARIABLES LIKE 'datadir';输出类似:
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
这个路径就是你当前的数据存放位置,后续所有操作都以此为基础。
停止 MySQL 服务并备份原数据
在修改前务必先停服务,再完整备份原始数据目录:
- Linux 下执行:sudo systemctl stop mysql(或 mysqld,取决于发行版)
- 创建安全备份:sudo cp -r /var/lib/mysql /var/lib/mysql_backup
- 检查备份完整性,确保所有子目录和文件都已复制
跳过备份或未完全停止服务就移动文件,极易引发元数据损坏。
SHOPEX简灰服装商城整站源码下载。 安装方法:1.解压上传程序至网站根目录.. 访问:域名/bak.(用户名:admin 密码:123456)2.进入帝国备份王后,配置数据库数据库信息.选择-www.taomoban.net目录.还原数据库.3.修改FTP目录下的config/config.phpphp 数据库连接信息.4.登陆网站后台--清空缓存..5.删除bak文件夹 后台:shopadm
移动数据目录到新路径
假设你想把数据移到 /data/mysql:
- 创建目标目录:sudo mkdir -p /data/mysql
- 赋予权限(保持与原目录一致,通常是 mysql 用户):sudo chown -R mysql:mysql /data/mysql
- 复制全部内容(不是移动):sudo cp -rp /var/lib/mysql/* /data/mysql/
- 验证文件数量和权限是否一致,尤其注意 ibdata1、ib_logfile*、mysql 系统库目录是否存在
修改配置并重启服务
编辑 MySQL 主配置文件(常见路径:/etc/my.cnf 或 /etc/mysql/my.cnf):
- 找到 [mysqld] 段,在其中添加或修改:
datadir = /data/mysql - 如果启用了 SELinux(如 CentOS/RHEL),还需更新上下文:
sudo semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
sudo restorecon -Rv /data/mysql - 保存后启动服务:sudo systemctl start mysql
- 检查是否成功:sudo systemctl status mysql,再进 MySQL 执行 SHOW DATABASES; 确认数据可读
若启动失败,查看错误日志(默认在 datadir 下的 hostname.err),常见问题包括权限不对、SELinux 限制、配置语法错误或残留 pid 文件。









