在Debian系统上进行MySQL数据库迁移,可以采用多种方法。以下是一个基本的迁移方案,包括从旧服务器迁移到新服务器的步骤:
在旧服务器上备份数据库:
mysqldump -u [用户名] -p[密码] --all-databases > backup.sql
注意:-p
后面直接跟密码,不要有空格。
将备份文件传输到新服务器:
可以使用scp
命令:
scp backup.sql [新服务器用户名]@[新服务器IP]:/path/to/backup.sql
在新服务器上恢复数据库:
mysql -u [用户名] -p[密码] < /path/to/backup.sql
在旧服务器上停止MySQL服务:
sudo systemctl stop mysql
创建数据目录的备份:
sudo tar czvf mysql_data_backup.tar.gz /var/lib/mysql
将备份文件传输到新服务器:
scp mysql_data_backup.tar.gz [新服务器用户名]@[新服务器IP]:/path/to/mysql_data_backup.tar.gz
在新服务器上解压并恢复数据目录:
sudo tar xzvf mysql_data_backup.tar.gz -C /
修改新服务器上的MySQL数据目录权限:
sudo chown -R mysql:mysql /var/lib/mysql
启动MySQL服务:
sudo systemctl start mysql
在旧服务器上配置复制:
编辑旧服务器的/etc/mysql/mysql.conf.d/mysqld.cnf
文件,添加以下内容:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = [数据库名]
重启MySQL服务:
sudo systemctl restart mysql
在新服务器上配置复制:
编辑新服务器的/etc/mysql/mysql.conf.d/mysqld.cnf
文件,添加以下内容:
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
replicate_do_db = [数据库名]
重启MySQL服务:
sudo systemctl restart mysql
在新服务器上创建复制用户:
CREATE USER 'replicator'@'旧服务器IP' IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'旧服务器IP';
FLUSH PRIVILEGES;
获取二进制日志位置:
SHOW MASTER STATUS;
在新服务器上配置复制:
CHANGE MASTER TO
MASTER_HOST='旧服务器IP',
MASTER_USER='replicator',
MASTER_PASSWORD='密码',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=123;
START SLAVE;
检查复制状态:
SHOW SLAVE STATUS\G
确保Slave_IO_Running
和Slave_SQL_Running
都是Yes
。
验证数据一致性: 在新旧服务器上运行相同的查询,比较结果是否一致。
通过以上步骤,你可以成功地将MySQL数据库从Debian旧服务器迁移到新服务器。根据实际情况选择最适合的方法。
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
相关推荐:Debian MySQL数据库如何迁移