设定MySQL服务器之间设置Master-Master复制的方法
发布时间:2022-03-17 20:15:37 所属栏目:MySql教程 来源:互联网
导读:设置MySQL服务器之间设置Master-Master复制的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧! 在此设置中,如果在任一服务器上进行的任何更改将都在另一台服务器
设置MySQL服务器之间设置Master-Master复制的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧! 在此设置中,如果在任一服务器上进行的任何更改将都在另一台服务器上更新。 设置细节: Master-1: 192.168.1.15 Master-2: 192.168.1.16 Database: mydb 步骤1:设置MySQL Master-1服务器 编辑MySQL配置文件并在[mysqld]部分下添加以下代码。 # vim /etc/my.cnf [mysqld] log-bin=mysql-bin binlog-do-db=mydb server-id=1 重启MySQL服务器以使更改生效。 # service mysqld restart 在Master-1服务器上创建一个具有REPLICATION SLAVE权限的mysql帐户,复制客户端将连接到master。 mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'secretpassword'; mysql> FLUSH PRIVILEGES; 所有表上都有block write语句,因此备份后不能进行任何更改。 mysql> use mydb; mysql> FLUSH TABLES WITH READ LOCK; 使用以下命令检查当前二进制日志文件名(File)和当前偏移量(Position)值。 mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 332 | mydb | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) 上面的输出显示当前的二进制文件使用的是mysql-bin.000003,偏移值为332。记下这些值,以便在下一步中在master-2服务器上使用。 备份数据库并将其复制到另一个mysql服务器。 # mysqldump -u root -p mydb > mydb.sql # scp mydb.sql 192.168.1.16:/opt/ 完成备份后,从表中删除READ LOCK,以便进行更改。 mysql> UNLOCK TABLES; 步骤2:设置MySQL Master-2服务器 编辑mysql Master-2配置文件并在[mysqld]部分下添加以下值。 #vim /etc/my.cnf [mysqld] log-bin = mysql-bin binlog-do-db = mydb server-id = 1 server-id始终为非零数值。这些值永远不会与其他主服务器或从服务器相似。 重启MySQL服务器,如果已配置复制,请在启动时使用-skip-slave-start,不要立即连接到主服务器。 #service mysqld restart 恢复从主服务器获取的数据库备份。 #mysql -u root -p mydb </opt/mydb.sql 在Master-1服务器上创建一个具有REPLICATION SLAVE权限的mysql帐户,复制客户端将连接到master。 mysql> GRANT REPLICATION SLAVE ON *.*''repl_user'@'%'IDENTIFIED BY'secretpassword'; mysql> FLUSH PRIVILEGES; 使用以下命令检查当前二进制日志文件名(File)和当前偏移量(Position)值。 mysql > SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 847 | mydb | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) 上面的输出显示当前二进制文件使用mysql-bin.000001,偏移值为847。记下这些值以在步骤3中使用。 使用以下命令在从属服务器上设置选项值。 mysql> CHANGE MASTER TO MASTER_HOST ='192.168.1.15', - > MASTER_USER ='repl_user', - > MASTER_PASSWORD ='secretpassword', - > MASTER_LOG_FILE ='mysql-bin.000003', - > MASTER_LOG_POS = 332; 步骤3:完成MySQL Master-1的安装 登录MySQL Master-1服务器并执行以下命令。 mysql> CHANGE MASTER TO MASTER_HOST ='192.168.1.16', MASTER_USER ='repl_user', MASTER_PASSWORD ='secretpassword', MASTER_LOG_FILE ='mysql-bin.000001', MASTER_LOG_POS = 847; 步骤4:在两台服务器上启动SLAVE 在两台服务器上执行以下命令以启动复制从属进程。 mysql> SLAVE START; MySQL Master-Master Replication已在您的系统和工作模式下成功配置。要测试复制是否正常,请在任一服务器上进行更改,并检查更改是否反映在其他服务器上。 感谢各位的阅读!看完上述内容,你们对设置MySQL服务器之间设置Master-Master复制的方法大概了解了吗? (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |