网站首页 > 技术教程 正文
MySQL 是一个广泛使用的开源关系数据库管理系统(RDBMS),为无数的 web 应用程序和服务提供支持。默认情况下,MySQL 将其数据存储在预定义的目录中,这可能并不总是适合您的需求。您可能希望将数据目录移动到另一个位置以获得更好的性能和安全性,或者利用单独的磁盘或分区。
在本指南中,我们将引导您完成在 Linux 系统上更改默认 MySQL 数据目录的过程,确保以最小的停机时间顺利过渡。
Step 1: 准备新的数据目录
第一步是创建一个新目录,用于存储 MySQL 数据,确保新位置有足够的存储空间以满足当前和未来的数据要求,用您所需的路径替换 /new/mysql/data 路径。
sudo mkdir -p /new/mysql/data
接下来,设置新目录的所有权和权限,以匹配默认 MySQL 数据目录的所有权和权限。
sudo chown -R mysql:mysql /new/mysql/data
sudo chmod 750 /new/mysql/data
Step 2: 停止 MySQL 服务
在更改 MySQL 配置之前,必须先停止 MySQL 服务,以避免数据损坏或丢失。
sudo systemctl stop mysqld
Step 3: 将现有数据复制到新目录
MySQL 服务停止后,可以安全地将现有数据复制到新目录中。需要保留文件的权限和所有权。
sudo rsync -av /var/lib/mysql/* /new/mysql/data
如果原有数据目录有所不同,则将 /var/lib/mysql 替换为当前的 MySQL 数据目录路径。
Step 4: 更新 MySQL 配置
要通知 MySQL 新数据目录,您必须更新配置文件,打开 MySQL 配置文件。
sudo nano /etc/my.cnf
更新 datadir 和 socket 选项以指向新目录
[mysqld]
datadir=/new/mysql/data
socket=/new/mysql/data/mysql.sock
如果这些选项不存在,将它们添加到 [mysqld] 部分,保存并关闭配置文件。
Step 5: 更新 systemd 配置 (可选)
如果您的系统使用 systemd 来管理 MySQL 服务,则可能需要更新 systemd 配置以反映新数据目录。打开
MySQL systemd 服务文件,通常位于
/usr/lib/systemd/system/mysqld.service 或
/lib/systemd/system/mysql.service
sudo nano /usr/lib/systemd/system/mysqld.service
找到 ExecStart 行并添加 --datadir 和 --socket 选项
ExecStart=/usr/sbin/mysqld --datadir=/new/mysql/data --socket=/new/mysql/data/mysql.sock
保存并关闭该文件,重新加载 systemd 配置。
sudo systemctl daemon-reload
Step 6: 更新 MySQL 客户端配置
为了确保 MySQL 客户端可以使用新的 socket 文件,需要更新客户端配置。
sudo nano /etc/my.cnf
找到 [client] 部分并更 socket 选项以指向新目录
[client]
socket=/new/mysql/data/mysql.sock
如果 socket 选项不存在,将其添加到 [client] 部分。保存并关闭配置文件。
Step 7: 重启 MySQL 服务
重启 MySQL 服务,使更改生效。
sudo systemctl start mysqld
Step 8: 验证更改
查看 mysql 服务状态
sudo systemctl status mysqld
此外,您可以使用客户端连接到 MySQL 服务器,并验证是否正在使用新的数据目录
mysql -u root -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir";'
Step 9: 删除或备份旧数据目录 (可选)
一旦确认 MySQL 正在使用新的数据目录并且一切正常,可以执行以下操作:
删除旧数据目录
sudo rm -rf /var/lib/mysql
或者,创建数据备份
sudo mv /var/lib/mysql /var/lib/mysql_backup
我的开源项目
- course-tencent-cloud(酷瓜云课堂 - gitee 仓库)
- course-tencent-cloud(酷瓜云课堂 - github 仓库)
猜你喜欢
- 2025-06-09 linux日志文件的管理、备份及日志服务器的搭建
- 2025-06-09 Linux下挂载windows的共享目录操作方法
- 2025-06-09 Linux系统中的备份文件命令(linux系统中的备份文件命令有哪些)
- 2025-06-09 麒麟KYLINOS|通过不同方法设置用户访问文件及目录权限
- 2025-06-09 「Linux笔记」系统目录结构(linux目录的结构及含义)
- 2025-06-09 linux中修改归属权chown命令和chgrp命令
- 2025-06-09 工作日报 2021.10.27 Android-SEAndroid权限问题指南
- 2025-06-09 Windows和Linux环境下,修改Ollama的模型默认保存路径
- 2025-06-09 如何强制用户在 Linux 上下次登录时更改密码?
- 2025-06-09 如何删除Linux文件夹中除某些扩展名之外的所有文件?
你 发表评论:
欢迎- 最近发表
-
- linux日志文件的管理、备份及日志服务器的搭建
- Linux下挂载windows的共享目录操作方法
- Linux系统中的备份文件命令(linux系统中的备份文件命令有哪些)
- 麒麟KYLINOS|通过不同方法设置用户访问文件及目录权限
- 「Linux笔记」系统目录结构(linux目录的结构及含义)
- linux中修改归属权chown命令和chgrp命令
- 工作日报 2021.10.27 Android-SEAndroid权限问题指南
- Windows和Linux环境下,修改Ollama的模型默认保存路径
- 如何强制用户在 Linux 上下次登录时更改密码?
- 如何删除Linux文件夹中除某些扩展名之外的所有文件?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)