在 Debian 上迁移 MySQL 数据,常见有几种方式,取决于你是:
下面按最常用场景说明。
systemctl stop mysql
默认数据目录通常是:
/var/lib/mysql
假设新目录是 /data/mysql:
mkdir -p /data/mysql
cp -a /var/lib/mysql/. /data/mysql/
chown -R mysql:mysql /data/mysql
编辑:
/etc/mysql/mysql.conf.d/mysqld.cnf
修改:
datadir = /data/mysql
systemctl start mysql
✅ ** safest、兼容性最好**
mysqldump -u root -p --all-databases --single-transaction > all.sql
scp all.sql user@new-server:/root/
mysql -u root -p < all.sql
适合:
- 跨版本
- 数据量不大(几十 GB 以内)
xtrabackup --backup --target-dir=/backup
xtrabackup --prepare --target-dir=/backup
systemctl stop mysql
rm -rf /var/lib/mysql/*
xtrabackup --copy-back --target-dir=/backup
chown -R mysql:mysql /var/lib/mysql
systemctl start mysql
⚠️ 不推荐,容易出权限/版本问题
systemctl stop mysql
scp -r /var/lib/mysql new-server:/var/lib/
SELECT VERSION();
SHOW DATABASES;
systemctl status mysql
mysql 目录忘了权限/etc/apparmor.d/usr.sbin.mysqld
--all-databases)如果你能告诉我:
我可以给你最合适的迁移方案。