MariaDB在Linux上的数据迁移流程及方法
MariaDB在Linux环境下的数据迁移主要分为两类:逻辑备份迁移(通过SQL文件实现,适用于大多数场景)和文件系统级迁移(直接复制数据目录,适用于大规模数据或需要快速迁移的场景)。其中,逻辑备份迁移是最常用的方式,步骤清晰且兼容性好。
使用mysqldump工具导出源数据库数据,生成SQL文件。可根据需求选择备份单个数据库或所有数据库:
mysqldump -u [用户名] -p[密码] [数据库名] > backup.sql(如mysqldump -uroot -pMySecretPassword mydb > mydb_backup.sql)mysqldump -u [用户名] -p --all-databases > full_backup.sql(需用--all-databases参数)使用scp(安全复制)命令将备份文件从源服务器传输到目标服务器:
scp backup.sql [目标服务器用户名]@[目标服务器IP]:/目标路径(如scp mydb_backup.sql user@192.168.1.100:/home/user/)
mysql -u [用户名] -p -e "CREATE DATABASE [新数据库名];"),再导入SQL文件:
mysql -u [用户名] -p[密码] [新数据库名] < /目标路径/backup.sql(如mysql -uroot -pMySecretPassword mydb < /home/user/mydb_backup.sql)--all-databases导出的,无需提前创建数据库,直接导入即可:
mysql -u [用户名] -p[密码] < /目标路径/full_backup.sql登录目标服务器的MariaDB,检查数据库和表是否正常:
SHOW DATABASES;USE [数据库名]; SHOW TABLES;SELECT COUNT(*) FROM [表名];若数据库体积较大(如TB级)或需要快速迁移,可采用文件系统级迁移,直接复制MariaDB的数据目录:
sudo systemctl stop mariadb(停止服务以释放数据目录锁)
使用rsync(保留文件属性,速度快于cp)复制数据目录(默认路径为/var/lib/mysql):
sudo rsync -a /var/lib/mysql /新路径/mysql(如rsync -a /var/lib/mysql /mnt/new_mysql/)
编辑MariaDB配置文件(通常为/etc/mysql/mariadb.conf.d/50-server.cnf),修改datadir参数指向新路径:
datadir = /新路径/mysql(如datadir = /mnt/new_mysql/)
sudo systemctl start mariadbmysql -u [用户名] -p -e "SHOW DATABASES;"(检查数据库是否正常显示)mysql用户(如sudo chown -R mysql:mysql /新路径/mysql),避免权限不足导致无法启动gzip压缩(mysqldump -u [用户名] -p[密码] [数据库名] | gzip > backup.sql.gz),传输后再解压(gunzip backup.sql.gz)