以下是CentOS下MySQL数据库迁移的常用技巧及方法:
使用mysqldump工具
mysqldump -u 用户名 -p密码 数据库名 > backup.sql--single-transaction参数避免锁表,适用于InnoDB)scp或rsync将backup.sql传输至目标服务器。mysql -u 用户名 -p密码 数据库名 < backup.sql。使用mydumper(高性能逻辑备份)
mydumper -u 用户名 -p密码 -B 数据库名 -o /备份路径myloader -u 用户名 -p密码 -d /备份路径直接复制数据目录(需停机)
systemctl stop mysqld。cp -r /var/lib/mysql /新路径/,修改权限为chown -R mysql:mysql /新路径/mysql。/etc/my.cnf中的datadir路径,重启服务。使用Percona XtraBackup(推荐InnoDB)
xtrabackup --backup --user=root --password=密码 --target-dir=/backup路径。scp复制备份文件至目标服务器。xtrabackup --prepare --target-dir=/backup路径xtrabackup --copy-back --target-dir=/backup路径 --datadir=/var/lib/mysql。chown -R mysql:mysql /var/lib/mysql,systemctl restart mysqld。my.cnf,开启log-bin和server-id,重启服务。my.cnf,设置server-id和relay-log,重启服务。CREATE USER 'repl_user'@'%' IDENTIFIED BY '密码'; GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';。CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl_user', MASTER_PASSWORD='密码', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=4;START SLAVE;。SHOW SLAVE STATUS\G,确认Slave_IO_Running和Slave_SQL_Running为Yes。innodb_buffer_pool_size)是否适配目标环境。mysqldump,大数据量选xtrabackup或物理复制,高可用场景选主从复制。参考来源: