以下是CentOS下MySQL数据迁移的常见方法及步骤:
适用场景:跨服务器迁移、需备份数据
备份源数据库
mysqldump -u [用户名] -p[密码] [数据库名] > backup.sql
(可选:--all-databases备份所有库,或--single-transaction保证一致性)
传输备份文件
scp backup.sql [目标服务器用户]@[目标IP]:/目标路径
恢复数据到目标服务器
mysql -u [用户名] -p[密码] [目标数据库名] < backup.sql
(若为压缩文件,需先解压:gunzip backup.sql.gz)
验证数据
登录目标数据库,检查表结构和数据是否完整。
适用场景:同服务器不同路径迁移、需快速同步
停止MySQL服务
systemctl stop mysqld
复制数据目录
rsync -av /var/lib/mysql/ [目标路径]/
(需确保目标目录权限正确:chown -R mysql:mysql [目标路径])
修改配置文件
编辑/etc/my.cnf,更新datadir指向新路径,重启MySQL。
验证数据
检查新路径下的数据文件,登录数据库确认表和数据正常。
适用场景:实时数据同步、读写分离
主服务器配置
/etc/my.cnf,启用log-bin和server-id(唯一ID)。CREATE USER 'repl'@'从服务器IP' IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从服务器IP';
SHOW MASTER STATUS中的File和Position。从服务器配置
/etc/my.cnf,设置server-id(不同于主服务器)、relay-log。CHANGE MASTER TO指定主服务器信息(IP、端口、账号、File、Position)。START SLAVE;,通过SHOW SLAVE STATUS检查状态(Slave_IO_Running和Slave_SQL_Running应为Yes)。根据需求选择合适方法,逻辑迁移适合跨环境,物理迁移适合高性能场景,主从复制适合实时同步需求。