1. 使用mysqldump工具迁移(逻辑备份与恢复)
这是Debian环境下最常用的MariaDB数据迁移方法,适用于跨版本(如MySQL迁移到MariaDB)、跨服务器的场景。步骤如下:
mysqldump命令导出数据,可选择导出单个数据库(mysqldump -u [用户名] -p[密码] [数据库名] > backup.sql)或所有数据库(mysqldump -u [用户名] -p[密码] --all-databases > full_backup.sql)。scp命令将生成的.sql文件复制到目标服务器(scp backup.sql [目标服务器用户名]@[目标服务器IP]:/path/to/destination)。CREATE DATABASE [新数据库名];创建空数据库。mysql命令将备份文件导入目标数据库(mysql -u [用户名] -p[密码] [新数据库名] < backup.sql)。SHOW CREATE TABLE [表名];)和数据量(SELECT COUNT(*) FROM [表名];)是否与源数据库一致。2. 直接复制数据目录(物理迁移)
适用于同版本MariaDB之间的快速迁移,或需要保留数据库文件(如InnoDB表空间文件)的场景。步骤如下:
systemctl stop mariadb。/var/lib/mysql,使用cp -R -p /var/lib/mysql/* /新目录路径/复制所有文件(-p参数保留文件权限和时间戳)。/etc/mysql/mariadb.conf.d/50-server.cnf,将datadir参数修改为新目录路径(如datadir = /新目录路径)。systemctl start mariadb,并通过SHOW DATABASES;验证数据是否加载成功。3. MySQL与MariaDB版本升级迁移
若从MySQL迁移到MariaDB(或MariaDB跨大版本升级),需利用其二进制兼容性特性。步骤如下:
mysqldump导出所有数据(mysqldump -u [用户名] -p[密码] --all-databases --master-data > backup.sql)。sudo apt-get remove --purge mysql-server mysql-client mysql-common,并删除残留数据目录(rm -rf /var/lib/mysql)。apt添加MariaDB官方仓库(如sudo apt install software-properties-common && sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db && sudo add-apt-repository 'deb http://mirror.mephi.ru/mariadb/repo/10.5/debian bullseye main'),然后安装MariaDB(sudo apt install mariadb-server)。.sql文件(mysql -u [用户名] -p[密码] < backup.sql)。SHOW VARIABLES LIKE 'character_set%';)、存储引擎(SHOW ENGINES;)等设置是否符合预期。4. 迁移注意事项
scp或rsync等可靠工具传输备份文件,避免中断导致数据损坏。FLUSH TABLES WITH READ LOCK;),确保备份时数据无变动;大型数据库可分批迁移。ALTER DATABASE [新数据库名] CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;)或导出时指定字符集(mysqldump -u [用户名] -p[密码] --default-character-set=utf8mb4 [数据库名] > backup.sql)。