Debian MariaDB数据迁移方法
导读:Debian系统下MariaDB数据迁移的常见方法 一、逻辑备份与恢复(推荐用于跨版本/跨服务器迁移) 逻辑备份是最通用的迁移方式,适用于跨MariaDB版本、跨服务器或需要保留完整SQL语句的场景,核心工具为mysqldump。 源数据...
Debian系统下MariaDB数据迁移的常见方法
一、逻辑备份与恢复(推荐用于跨版本/跨服务器迁移)
逻辑备份是最通用的迁移方式,适用于跨MariaDB版本、跨服务器或需要保留完整SQL语句的场景,核心工具为mysqldump。
- 源数据库备份:在源服务器上使用
mysqldump导出数据。若迁移全部数据库,运行sudo mysqldump -u root -p --all-databases > full_backup.sql(替换root为实际用户名,输入密码后生成full_backup.sql文件);若仅迁移特定数据库,将--all-databases替换为--databases 数据库名(如--databases mydb)。 - 备份文件传输:将生成的
.sql文件传输至目标服务器,推荐使用scp命令(安全复制):scp full_backup.sql user@target_server_ip:/path/to/destination(替换user为目标服务器用户名、target_server_ip为目标服务器IP、/path/to/destination为目标路径)。 - 目标数据库准备:登录目标服务器,安装MariaDB(若未安装):
sudo apt update & & sudo apt install mariadb-server;启动服务并设置开机自启:sudo systemctl start mariadb、sudo systemctl enable mariadb。 - 导入数据:登录目标服务器的MariaDB,创建新数据库(
CREATE DATABASE new_db;,替换new_db为目标数据库名);退出MySQL命令行(输入exit),使用mysql命令导入备份文件:mysql -u root -p new_db < full_backup.sql(替换root为用户名、new_db为目标数据库名)。 - 验证数据:登录目标数据库,检查数据库列表(
SHOW DATABASES;)、表结构(USE new_db; SHOW TABLES;)及数据完整性(SELECT COUNT(*) FROM 表名;)。
二、物理文件迁移(适用于同版本/同服务器场景)
若迁移环境为同版本MariaDB且无需更换服务器,可直接复制数据文件,效率更高但灵活性较低。
- 停止MariaDB服务:
sudo systemctl stop mariadb(确保数据一致性,避免复制过程中文件修改)。 - 复制数据目录:MariaDB默认数据目录为
/var/lib/mysql,使用cp命令复制到新位置(保留文件属性):sudo cp -a /var/lib/mysql /new/location/mysql(替换/new/location/mysql为新路径,如/home/mysql-data)。 - 修改配置文件:编辑MariaDB配置文件(通常为
/etc/mysql/mariadb.conf.d/50-server.cnf),找到datadir参数,将其值修改为新路径:datadir = /new/location/mysql;若新路径位于受限目录(如/home),需修改MariaDB服务文件(sudo systemctl edit mariadb.service),添加ProtectHome = false以允许访问。 - 修改权限:确保新数据目录的所有者为
mysql用户:sudo chown -R mysql:mysql /new/location/mysql。 - 启动服务并验证:启动MariaDB服务(
sudo systemctl start mariadb),检查状态(sudo systemctl status mariadb,确保为“active (running)”);登录数据库,执行SHOW DATABASES;验证数据是否正常。
三、跨版本/跨引擎迁移注意事项
- 版本兼容性:确保目标MariaDB版本不低于源版本(如源为10.3,目标可为10.3及以上),避免因版本差异导致语法或功能不兼容。
- 字符集与排序规则:若源与目标字符集不同(如UTF-8与Latin1),导入前需转换。可在导入前执行
ALTER DATABASE new_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;(修改数据库字符集),或在导出时添加--default-character-set=utf8mb4参数(如mysqldump -u root -p --all-databases --default-character-set=utf8mb4 > full_backup.sql)。 - 停机时间规划:逻辑备份与恢复的时间取决于数据量大小,建议在业务低峰期执行;物理迁移需停止服务,停机时间较短但需提前通知用户。
- 备份验证:迁移前验证备份文件的完整性(如尝试在测试环境导入),避免因备份损坏导致数据丢失。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian MariaDB数据迁移方法
本文地址: https://pptw.com/jishu/740958.html
