温馨提示×

ubuntu mariadb怎样迁移数据

小樊
51
2026-10-28 13:20:56
栏目: 云计算

在 Ubuntu 上迁移 MariaDB 数据,常见有几种方式,按「场景」给你总结一下,你可以对号入座。


一、同机 / 同版本迁移(最稳妥:物理文件拷贝)

适用场景

  • 服务器重装系统但版本一致
  • 磁盘迁移
  • 数据目录更换

步骤

  1. 停止 MariaDB
sudo systemctl stop mariadb
  1. 拷贝数据目录 默认数据目录一般是 /var/lib/mysql
sudo cp -a /var/lib/mysql /new/path/mysql
  1. 修改配置
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

修改:

datadir = /new/path/mysql
  1. 修改权限
sudo chown -R mysql:mysql /new/path/mysql
  1. 启动
sudo systemctl start mariadb

二、跨服务器迁移(推荐:逻辑导出)

方法 1: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

✅ 优点:兼容性好
⚠ 缺点:大库较慢


三、大数据库迁移(更快)

方法 2:mydumper / myloader

sudo 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/

⚠ 必须:

  • 两机 MariaDB 版本一致
  • 目标先停服务

五、Docker 中的 MariaDB 迁移

导出

docker exec mariadb mysqldump -u root -p密码 --all-databases > dump.sql

导入

docker exec -i mariadb mysql -u root -p密码 < dump.sql

六、迁移后常见问题

1. 权限错误

sudo chown -R mysql:mysql /var/lib/mysql

2. 无法启动

查看日志:

sudo journalctl -xe
sudo cat /var/log/mysql/error.log

3. 用户丢失

用 mysqldump --all-databases 才会包含用户


七、我该选哪种?

场景 推荐
小库 mysqldump
大库 mydumper
同版本整盘 文件拷贝
Docker dump 导入

如果你能告诉我:

  • 是否同版本
  • 是否跨服务器
  • 数据量大小

我可以直接给你一条最适合你的命令流程。

0 踩