ubuntu18.04如何将mysql的数据存储地址迁移到新硬盘上
时间: 2024-05-03 21:22:59 浏览: 227
1. 确定新硬盘的挂载点
首先,需要确定新硬盘的挂载点,可以通过以下命令查看:
```
sudo fdisk -l
```
可以根据硬盘的大小和文件系统类型来确定新硬盘的挂载点,比如 `/dev/sdb1`。
2. 停止 MySQL 服务
在迁移数据之前,需要先停止 MySQL 服务,可以使用以下命令:
```
sudo systemctl stop mysql
```
3. 备份旧数据
在迁移数据之前最好先备份旧数据,可以使用以下命令:
```
sudo mysqldump -u root -p --opt --all-databases > backup.sql
```
其中,`root` 是 MySQL 的用户名,`--opt` 表示使用优化选项,`--all-databases` 表示备份所有数据库,`backup.sql` 是备份文件的名称。
4. 拷贝旧数据到新硬盘
将旧数据拷贝到新硬盘的挂载点下,可以使用以下命令:
```
sudo cp -r /var/lib/mysql /mnt/sdb1/
```
其中,`/var/lib/mysql` 是 MySQL 数据的默认存储路径,`/mnt/sdb1/` 是新硬盘的挂载点。
5. 修改 MySQL 配置文件
需要修改 MySQL 的配置文件 `/etc/mysql/mysql.conf.d/mysqld.cnf`,将数据存储路径修改为新硬盘的挂载点,可以使用以下命令:
```
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```
找到以下行:
```
datadir=/var/lib/mysql
```
将其改为:
```
datadir=/mnt/sdb1/mysql
```
然后保存并退出。
6. 修改 AppArmor 配置文件
需要修改 AppArmor 的配置文件 `/etc/apparmor.d/usr.sbin.mysqld`,将数据存储路径修改为新硬盘的挂载点,可以使用以下命令:
```
sudo nano /etc/apparmor.d/usr.sbin.mysqld
```
找到以下行:
```
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
```
将其改为:
```
/mnt/sdb1/mysql/ r,
/mnt/sdb1/mysql/** rwk,
```
然后保存并退出。
7. 重启 MySQL 和 AppArmor
修改完配置文件之后,需要重启 MySQL 和 AppArmor,可以使用以下命令:
```
sudo systemctl restart mysql
sudo systemctl restart apparmor
```
8. 确认数据是否迁移成功
可以使用以下命令查看 MySQL 数据的存储路径是否已经修改为新硬盘的挂载点:
```
sudo mysql -u root -p -e "SHOW VARIABLES LIKE 'datadir'"
```
如果输出结果中的 `Value` 为新硬盘的挂载点,则说明数据已经成功迁移。
阅读全文