服务之间的数据迁移实施多个MySQL服务间的数据迁移(多个mysql)
服务之间的数据迁移是一种常见的数据库操作,在不同的MySQL服务间进行数据迁移可以有效利用资源,并降低硬件消耗。在实施MySQL服务间的数据迁移时,有四种常见的方法,分别为导入导出、在线复制、动态检索复制,和MySQL复制。下面将对这四种数据迁移方式进行介绍。
1、导入导出:使用MySQL的命令行客户端程序mySQLdump来完成,推荐使用图形客户端软件。首先,可以使用SQL命令从MySQL库中导出数据,然后将导出的数据导入到另一个MySQL库中。实施过程如下:
mysqldump -h hostname -u root -p dbname > outfile.sql
mysqldump -h hostname -u root -p dbname > infile.sql
2、在线复制:在线复制数据是指从一台MySQL服务器实时复制数据到另一台MySQL服务器,有以下特点:数据复制是可以实时完成的,并且会受源服务器的影响,使用此方法时,需要在源服务器上配置复制账号,以及指定源服务器复制的数据库,并且在目标服务器上将源服务器设为只读库,实施过程如下:
//在源服务器上编辑my.cnf配置文件
[mysqld]
log-bin=mysql-bin
//在源服务器上创建新的复制帐号
CREATE USER [新帐号名称]@’%’ IDENTIFIED BY “[新帐号密码]”;
GRANT REPLICATION SLAVE ON *.* TO [复制帐号]@’%’ ;
//指定源服务器上要复制的数据库
FLUSH TABLES WITH READ LOCK;
UNLOCK TABLES;
//获取源服务器的数据文件信息
SHOW MASTER STATUS;
//复制文件
mysqldump -h hostname -u root -p dbname > infile.sql
3、动态检索复制:动态检索复制数据,也称为任务池检索,是指在源和目标服务器之间建立数据通道,将源数据传输到目标数据服务器,这种方式克服了在线复制的缺点,可以更好的保障数据的一致性,实施的步骤如下:
//源服务器上执行复制命令
CHANGE MASTER TO MASTER_HOST=’host’, MASTER_USER=’user’,MASTER_PASSWORD=’pass’,MASTER_LOG_FILE=’mysql-bin.00001′,MASTER_LOG_POS=0;
START SLAVE
4、MySQL复制:MySQL复制是指将数据从一台MySQL服务器同步到另一台MySQL服务器,使用这种方式可以在一台服务器上检索数据,并同步到另一台服务器上,可以极大减少目标服务器的压力,使数据库复制更便捷快捷。MySQL复制的实施过程如下:
//在源服务器上编辑my.cnf配置文件
[mysqld]
log-bin=mysql-bin
//在源服务器上创建新的复制帐号
CREATE USER [新帐号名称]@’%’ IDENTIFIED BY “[新帐号密码]”;
GRANT REPLICATION SLAVE ON *.* TO [复制帐号]@’%’ ;
//指定源服务器上要复制的数据库
FLUSH TABLES WITH READ LOCK;
UNLOCK TABLES;
//获取源服务器的数据文件信息
SHOW MASTER STATUS;
//在目标服务器上编辑my.cnf配置文件
[mysqld]
server-id = 2
replicate-do-db = dbname
//在目标服务器上执行复制命令
CHANGE MASTER TO MASTER_HOST=’host’,MASTER_USER=’user’,MASTER_PASSWORD=’pass’,MASTER_LOG_FILE=’mysql-bin.00001′,MASTER_LOG_POS=0;
START SLAVE;
以上就是实施MySQL服务间数据迁移四种方式,根据实际情况选择合适的方式即