1. 常规工具迁移(mysqldump/mariadb-dump + mysql/mariadb-restore)
这是Linux环境下最基础、最常用的迁移方法,适用于中小型数据库。步骤如下:
mysqldump(兼容MySQL/MariaDB)或mariadb-dump(MariaDB专用)导出数据。例如,备份单个数据库:mysqldump -u [用户名] -p[密码] [数据库名] > backup.sql(注意-p与密码无空格);备份所有数据库:添加--all-databases参数。scp命令将backup.sql复制到目标服务器,如scp backup.sql user@target_ip:/path/to/destination。mysql -u [用户名] -p[密码] -e "CREATE DATABASE [新数据库名];"。mysql或mariadb-restore导入数据,如mysql -u [用户名] -p[密码] [新数据库名] < /path/to/destination/backup.sql。USE [新数据库名]; SHOW TABLES; SELECT COUNT(*) FROM [表名];。2. 热备份工具迁移(xtrabackup/percona-xtrabackup)
适用于大型数据库或需要零停机迁移的场景,支持InnoDB/XtraDB存储引擎的热备份(无需停止MariaDB服务)。步骤如下:
sudo apt-get install percona-xtrabackup-24,CentOS/RHEL使用sudo yum install percona-xtrabackup-24。xtrabackup --backup --target-dir=/path/to/backup --user=[用户名] --password=[密码],生成备份目录。xtrabackup --prepare --target-dir=/path/to/backup,将备份转换为可恢复状态。tar -czvf backup.tar.gz /path/to/backup)后传输到目标服务器。tar -xzvf backup.tar.gz -C /),执行xtrabackup --copy-back --target-dir=/path/to/backup --datadir=/var/lib/mysql(--datadir为目标数据目录),恢复完成后修改目录权限:chown -R mysql:mysql /var/lib/mysql。sudo systemctl restart mariadb。3. 图形化工具迁移(phpMyAdmin)
适合不熟悉命令行的用户,通过web界面完成迁移。步骤如下:
backup.sql。scp或FTP将backup.sql传输到目标服务器。backup.sql文件,点击“执行”完成导入。4. 迁移注意事项
utf8mb4)和排序规则(如utf8mb4_general_ci)一致,避免乱码。可在恢复时指定字符集:mysql --default-character-set=utf8mb4 -u [用户名] -p[密码] [数据库名] < backup.sql,或在目标数据库中转换:ALTER DATABASE [数据库名] CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE [表名] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;。mysqldump,停机时间为备份和恢复的总时长;若使用xtrabackup,可实现几乎零停机(仅最后一次备份需短暂锁表)。scp(加密)或rsync(增量传输),避免因网络中断导致备份损坏。SELECT COUNT(*)或CHECKSUM TABLE命令验证一致性。