您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

如何设置MySQL主主(Master-Master )复制

2025/9/18 5:20:00发布18次查看
mysql master-slave复制是在主服务器完成更改后立即设置从服务器进行更新。但是如果在从属服务器上进行了任何更改,它将不会更新master。本篇文章将介绍在mysql服务器之间设置master-master复制。
在此设置中,如果在任一服务器上进行的任何更改将都在另一台服务器上更新。
设置细节:
master-1: 192.168.1.15master-2: 192.168.1.16database: mydb
步骤1:设置mysql master-1服务器
编辑mysql配置文件并在[mysqld]部分下添加以下代码。
# vim /etc/my.cnf
[mysqld]log-bin=mysql-binbinlog-do-db=mydbserver-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 )复制的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product