MariaDB在Linux上如何进行数据迁移
MariaDB在Linux上的数据迁移流程及方法
一、常见迁移方法概述
MariaDB在Linux环境下的数据迁移主要分为两类:逻辑备份迁移(通过SQL文件实现,适用于大多数场景)和文件系统级迁移(直接复制数据目录,适用于大规模数据或需要快速迁移的场景)。其中,逻辑备份迁移是最常用的方式,步骤清晰且兼容性好。
二、逻辑备份迁移步骤(推荐)
1. 备份源数据库
使用mysqldump工具导出源数据库数据,生成SQL文件。可根据需求选择备份单个数据库或所有数据库:
- 备份单个数据库:
mysqldump -u [用户名] -p[密码] [数据库名] > backup.sql(如mysqldump -uroot -pMySecretPassword mydb > mydb_backup.sql) - 备份所有数据库:
mysqldump -u [用户名] -p --all-databases > full_backup.sql(需用--all-databases参数)
2. 传输备份文件到目标服务器
使用scp(安全复制)命令将备份文件从源服务器传输到目标服务器:
scp backup.sql [目标服务器用户名]@[目标服务器IP]:/目标路径(如scp mydb_backup.sql user@192.168.1.100:/home/user/)
3. 在目标服务器导入数据
- 导入单个数据库:先在目标服务器创建同名数据库(
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
4. 验证数据完整性
登录目标服务器的MariaDB,检查数据库和表是否正常:
- 查看数据库列表:
SHOW DATABASES; - 查看指定数据库的表:
USE [数据库名]; SHOW TABLES; - 检查表数据量:
SELECT COUNT(*) FROM [表名];
三、文件系统级迁移(大规模数据适用)
若数据库体积较大(如TB级)或需要快速迁移,可采用文件系统级迁移,直接复制MariaDB的数据目录:
1. 停止MariaDB服务
sudo systemctl stop mariadb(停止服务以释放数据目录锁)
2. 复制数据目录
使用rsync(保留文件属性,速度快于cp)复制数据目录(默认路径为/var/lib/mysql):
sudo rsync -a /var/lib/mysql /新路径/mysql(如rsync -a /var/lib/mysql /mnt/new_mysql/)
3. 修改配置文件
编辑MariaDB配置文件(通常为/etc/mysql/mariadb.conf.d/50-server.cnf),修改datadir参数指向新路径:
datadir = /新路径/mysql(如datadir = /mnt/new_mysql/)
4. 启动服务并验证
- 启动MariaDB:
sudo systemctl start mariadb - 验证数据:
mysql -u [用户名] -p -e "SHOW DATABASES; "(检查数据库是否正常显示)
四、迁移注意事项
- 版本兼容性:确保源服务器与目标服务器的MariaDB版本一致或兼容(如10.5.x → 10.6.x可行,但10.5.x → 10.4.x可能存在问题)
- 权限设置:目标服务器的MariaDB数据目录需归属
mysql用户(如sudo chown -R mysql:mysql /新路径/mysql),避免权限不足导致无法启动 - 大文件处理:大规模数据库迁移建议在业务低峰期进行,避免影响线上服务;若备份文件过大,可使用
gzip压缩(mysqldump -u [用户名] -p[密码] [数据库名] | gzip > backup.sql.gz),传输后再解压(gunzip backup.sql.gz) - 数据验证:迁移后务必核对数据完整性(如表数量、数据量、特殊字符是否正常),避免因传输中断或配置错误导致数据丢失
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MariaDB在Linux上如何进行数据迁移
本文地址: https://pptw.com/jishu/744618.html
