请提供您需要摘要的具体内容,我会根据您的要求(100-200字)为您生成摘要。
数据库磁盘空间告急?Linux 下将 MySQL 数据迁移至独立磁盘的完整实战指南 **
在 Linux 服务器运维中,最常见的问题之一莫过于根分区()空间不足,当数据库(如 MySQL、PostgreSQL 等)不断增长时,它会迅速占用系统盘空间,导致系统无法写入日志甚至崩溃,为了避免这种情况,将数据库的数据目录迁移到独立的磁盘或分区是最佳实践。
本文将以最常用的 MySQL 为例,详细讲解如何将数据库挂载到其他磁盘,确保数据安全并提升性能。

准备工作
在开始操作之前,我们需要确认两件事:
- 确认新磁盘: 系统是否已经识别到了新的硬盘(
/dev/sdb)。 - 数据备份: 这是最重要的一步,在移动数据前,务必对数据库进行全量备份。
查看磁盘状态
使用 lsblk 或 fdisk -l 命令查看系统中的磁盘情况。
lsblk``` ### 二、 创建分区并格式化 假设新的磁盘设备名为 `/dev/sdb`(请根据实际情况替换)。 #### 1. 创建分区 使用 `fdisk` 命令对磁盘进行分区。 ```bash fdisk /dev/sdb
- 输入
n创建新分区。 - 输入
p选择主分区。 - 直接回车(使用默认值)。
- 直接回车(使用默认值)。
- 输入
w保存并退出。
格式化分区
分区创建后,我们需要将其格式化为文件系统(ext4 或 xfs)。
mkfs.ext4 /dev/sdb1 # 或者使用 xfs: mkfs.xfs /dev/sdb1
创建挂载点并挂载
挂载点是指文件系统中用于访问该磁盘的目录。
创建挂载目录
建议在根目录下创建一个明确的目录,/data/mysql。
mkdir -p /data/mysql
临时挂载
将新分区挂载到该目录。
mount /dev/sdb1 /data/mysql
验证挂载
使用 df -h 命令查看,确认 /data/mysql 已显示新磁盘的容量。
df -h
迁移数据库数据
磁盘已经挂载好了,但里面的数据还是空的,我们需要把现有的数据库数据从旧位置复制到新位置。
停止数据库服务
必须先停止服务,否则文件可能处于锁定状态,导致复制失败。
systemctl stop mysql # 或者如果是其他服务,如 mariadb: systemctl stop mariadb
复制数据
使用 rsync 命令将旧数据复制到新挂载点。-a 参数表示归档模式(保留权限、时间戳等),-v 表示显示详细信息。
rsync -av /var/lib/mysql/ /data/mysql/
(注意:如果你的 MySQL 数据目录不是 /var/lib/mysql,请替换为实际路径,/usr/local/mysql/data)
修改目录权限
MySQL 服务通常以 mysql 用户运行,必须确保新目录的所有权属于该用户。
ch
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

