MySQL数据目录修改需停库后迁移并更新配置:先用SHOW VARIABLES LIKE 'datadir'确认原路径,再rsync复制数据至新目录,修改my.cnf中datadir,调整权限为mysql:mysql,重启后验证生效。

MySQL 数据目录(data directory)是 MySQL 存放数据库文件、日志、系统表等核心数据的物理路径。修改它的位置,通常是为了节省系统盘空间、提升 I/O 性能、或满足安全与备份策略要求。关键在于:修改前必须停库,修改后需确保权限和配置完全匹配,否则 MySQL 无法启动。
确认当前数据目录位置
登录 MySQL 后执行以下命令查看当前设置:
mysql> SHOW VARIABLES LIKE 'datadir';输出类似 /var/lib/mysql 即为当前数据目录。也可通过配置文件(如 /etc/my.cnf 或 /etc/mysql/my.cnf)中 [mysqld] 段下的 datadir 行确认。
准备新数据目录并迁移数据
- 选择目标路径(如 /data/mysql),创建目录:sudo mkdir -p /data/mysql
- 停止 MySQL 服务:sudo systemctl stop mysql(或 mysqld,取决于系统)
- 复制原数据目录全部内容(保留权限和隐藏文件):sudo rsync -av /var/lib/mysql/ /data/mysql/
- 验证新目录内容完整(尤其检查 ibdata1、ib_logfile*、mysql/、performance_schema/ 等是否齐全)
修改配置并调整权限
编辑 MySQL 配置文件(如 /etc/my.cnf),在 [mysqld] 段中更新:
NetShop软件特点介绍: 1、使用ASP.Net(c#)2.0、多层结构开发 2、前台设计不采用任何.NET内置控件读取数据,完全标签化模板处理,加快读取速度3、安全的数据添加删除读取操作,利用存储过程模式彻底防制SQL注入式攻击4、前台架构DIV+CSS兼容IE6,IE7,FF等,有利于搜索引挚收录5、后台内置强大的功能,整合多家网店系统的功能,加以优化。6、支持三种类型的数据库:Acces
若使用 systemd(常见于 CentOS 7+/Ubuntu 16.04+),还需检查是否有覆盖配置(如 /etc/systemd/system/mysqld.service.d/override.conf),避免冲突。
设置正确属主和权限(以 MySQL 用户为准,通常是 mysql:mysql):
sudo chown -R mysql:mysql /data/mysqlsudo chmod -R 750 /data/mysql
重启服务并验证
- 启动 MySQL:sudo systemctl start mysql
- 检查状态:sudo systemctl status mysql,确认 Active: active (running)
- 重新登录 MySQL,再次运行 SHOW VARIABLES LIKE 'datadir';,确认已生效
- 执行简单查询(如 SELECT COUNT(*) FROM mysql.user;)验证读写正常
不复杂但容易忽略:SELinux(CentOS/RHEL)或 AppArmor(Ubuntu)可能阻止访问新路径,如启动失败且日志提示权限拒绝,需相应调整策略或临时禁用以排查。









