一、关闭MySQL
systemctl stop mysqld
ls -ld /var/lib/mysql
二、创建一个卷组、创建一个逻辑卷用于挂载MySQL目录
[root@docker ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 4 0 wz–n- 98.00g 0
vg-docker 9 1 0 wz–n- 449.96g 49.96g
vg-mysql 9 1 0 wz–n- 179.96g 29.96g
[root@docker ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- 10.00g
root centos -wi-ao---- 58.00g
swap centos -wi-ao---- 20.00g
var centos -wi-ao---- 10.00g
lv_docker vg-docker -wi-ao---- 400.00g
lv_mysql vg-mysql -wi-a----- 150.00g
[root@docker ~]# ls -l /dev/vg-mysql/lv_mysql
lrwxrwxrwx. 1 root root 7 5月 21 19:53 /dev/vg-mysql/lv_mysql -> …/dm-5
mkfs -t ext4 /dev/vg-mysql/lv_mysql
三、将源目录备份,后面复制会用到
[root@docker ~]# mv /var/lib/mysql /var/lib/mysql_bak
[root@docker ~]# mkdir -p /var/lib/mysql
[root@docker ~]# ls -l /var/lib/mysql
chown -R mysql.mysql /var/lib/mysql
四、 挂载并复制MySQL备份目录到挂点
mount /dev/vg-mysql/lv_mysql /var/lib/mysql
[root@docker ~]# echo “/dev/vg-mysql/lv_mysql /var/lib/mysql ext4 defaults 0 0” >> /etc/fstab
[root@docker ~]# mount –a
带权限复制,不然会报错
cp -r -p /var/lib/mysql_bak/* /var/lib/mysql
五、重新启动MySQL
systemctl start mysqld
[root@docker mysql]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 57G 14G 41G 26% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 13M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda2 976M 149M 761M 17% /boot
/dev/mapper/centos-home 9.8G 41M 9.2G 1% /home
/dev/mapper/centos-var 9.8G 612M 8.7G 7% /var
/dev/mapper/vg–mysql-lv_mysql 148G 248M 140G 1% /var/lib/mysql
/dev/mapper/vg–docker-lv_docker 394G 44G 331G 12% /var/lib/docker
tmpfs 782M 8.0K 782M 1% /run/user/42
tmpfs 782M 0 782M 0% /run/user/0
这篇博客介绍了如何关闭MySQL服务,创建卷组和逻辑卷,然后挂载到MySQL目录。接着,作者备份了原有MySQL数据,新建目录并设置权限,将备份复制到挂载点。最后,重新启动MySQL服务,确保数据迁移成功。整个过程详细地展示了Linux系统下MySQL数据的安全迁移步骤。
877

被折叠的 条评论
为什么被折叠?



