在 Ubuntu 上迁移 MariaDB 数据,常见有几种方式,按「场景」给你总结一下,你可以对号入座。
sudo systemctl stop mariadb
/var/lib/mysqlsudo cp -a /var/lib/mysql /new/path/mysql
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
修改:
datadir = /new/path/mysql
sudo chown -R mysql:mysql /new/path/mysql
sudo systemctl start mariadb
mysqldump(最通用)mysqldump -u root -p --all-databases > alldb.sql
或单个库:
mysqldump -u root -p dbname > dbname.sql
scp alldb.sql user@目标IP:/tmp/
mysql -u root -p < /tmp/alldb.sql
✅ 优点:兼容性好
⚠ 缺点:大库较慢
mydumper / myloadersudo apt install mydumper
导出:
mydumper -u root -p -B dbname -o /backup/
导入:
myloader -u root -p -d /backup/
✅ 多线程,速度快
rsync 做整库迁移(同版本)rsync -avz /var/lib/mysql/ root@目标IP:/var/lib/mysql/
⚠ 必须:
docker exec mariadb mysqldump -u root -p密码 --all-databases > dump.sql
docker exec -i mariadb mysql -u root -p密码 < dump.sql
sudo chown -R mysql:mysql /var/lib/mysql
查看日志:
sudo journalctl -xe
sudo cat /var/log/mysql/error.log
用 mysqldump --all-databases 才会包含用户
| 场景 | 推荐 |
|---|---|
| 小库 | mysqldump |
| 大库 | mydumper |
| 同版本整盘 | 文件拷贝 |
| Docker | dump 导入 |
如果你能告诉我:
我可以直接给你一条最适合你的命令流程。