Ubuntu环境下MariaDB数据迁移的常见方法
逻辑备份通过导出SQL语句实现数据迁移,灵活性高,适合大多数场景。
mysqldump工具导出数据。导出所有数据库的命令为:mysqldump -u root -p --all-databases > full_backup.sql(-p与密码之间无空格,执行后会提示输入密码);若仅需导出特定数据库,将--all-databases替换为--databases 数据库名即可。scp命令将full_backup.sql传输至目标服务器(替换为目标服务器用户名、IP及路径):scp full_backup.sql user@target_server_ip:/path/to/destination。sudo apt update && sudo apt install mariadb-server mariadb-client。mysql命令导入备份文件:mysql -u root -p < /path/to/destination/full_backup.sql(输入密码后开始恢复)。mysql -u root -p
SHOW DATABASES; -- 查看所有数据库
USE 目标数据库名; -- 切换至目标数据库
SHOW TABLES; -- 查看所有表
SELECT COUNT(*) FROM 表名; -- 检查表记录数
物理迁移通过直接复制数据文件实现,速度快,但需停机操作,适合大型数据库。
sudo systemctl stop mariadb。/var/lib/mysql,使用rsync复制数据(保留权限):sudo rsync -av /var/lib/mysql /new/data/directory(/new/data/directory为自定义新路径)。/etc/mysql/mariadb.conf.d/50-server.cnf,找到datadir行,修改为新路径:datadir = /new/data/directory;若有远程访问需求,将bind-address设置为0.0.0.0(允许所有IP连接)或目标服务器IP。mysql用户:sudo chown -R mysql:mysql /new/data/directory。mysql_upgrade检查表结构完整性:sudo systemctl start mariadb
sudo mysql_upgrade -u root -p -- 升级系统表结构
xtrabackup是开源的物理备份工具,支持增量备份,适合TB级数据库。
sudo apt update && sudo apt install percona-xtrabackup-24。xtrabackup --backup --target-dir=/path/to/backup --user=root --password=your_password。tar -czvf backup.tar.gz /path/to/backup
scp backup.tar.gz user@target_server_ip:/path/to/destination
tar -xzvf backup.tar.gz -C /;xtrabackup --prepare --target-dir=/path/to/backup(将备份文件转为可恢复状态);xtrabackup --copy-back --target-dir=/path/to/backup --datadir=/var/lib/mysql(将数据复制至MariaDB数据目录)。chown -R mysql:mysql /var/lib/mysql)、重启服务(systemctl start mariadb)、验证数据。通过phpMyAdmin等图形化工具实现可视化迁移,操作简便。
scp或FTP将备份文件传输至目标服务器。--single-transaction参数(逻辑迁移,仅适用于InnoDB)。SHOW VARIABLES LIKE 'character_set%';查看源数据库字符集,目标数据库创建时指定:CREATE DATABASE 新库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;。