MySQL Master Master Repliction教程
本教程介绍如何设置MySQL master-master复制。 我们需要复制MySQL服务器来实现高可用性(HA)。 在我的情况下,我需要两个相互同步的主器件,以便如果其中一个主机掉线,则其他主机可以接管并且不会丢失任何数据。 同样,当第一个再次上升时,它仍将被用作活动的Minion。
这是一个基本的一步一步的教程,它将覆盖mysql主从复制,同时也将描述mysql的master和master的复制。
概念: 我们将系统1称为master1,slave2和system2称为master2和slave 1。
第1步:
在主机1和从机1上安装mysql 1.在两个系统上配置网络服务,如
Master 1 / Slave 2 ip:192.168.16.4
Master 2 / Slave 1 ip:192.168.16.5
第2步:
在Master 1上,在my.cnf中进行更改:
[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
old_passwords = 1
log-bin
binlog-do-db = <database name>#输入应该被复制的数据库
binlog-ignore-db = mysql#输入应该忽略的数据库进行复制
binlog-ignore-db = test
server-id = 1
[mysql.server]
user = mysql
basedir = / var / lib
[mysqld_safe]
err-log = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid
第3步:
在master 1上,在mysql中创建一个复制从属帐户。
mysql> grant replication slave on *.* to 'replication'@192.168.16.5 \
identified by 'slave';
并重新启动mysql master1。
第4步:
现在在Slave1或Master2上编辑my.cnf:
[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
old_passwords = 1
server-id = 2
master-host = 192.168.16.4
master-user =复制
master-password = slave
主端口= 3306
[mysql.server]
user = mysql
basedir = / var / lib
[mysqld_safe]
err-log = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid
第5步:
重新启动mysql slave 1和at
mysql> start slave;
mysql> show slave status\G;
*************************** 1.行******************** *******
Slave_IO_State:等待主人发送事件
Master_Host:192.168.16.4
Master_User:replica
Master_Port:3306
Connect_Retry:60
Master_Log_File:MASTERMYSQL01-bin.000009
Read_Master_Log_Pos:4
Relay_Log_File:MASTERMYSQL02-relay-bin.000015
Relay_Log_Pos:3630
Relay_Master_Log_File:MASTERMYSQL01-bin.000009
Slave_IO_Running:是的
Slave_SQL_Running:是的
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:0
Last_Error:
Skip_Counter:0
Exec_Master_Log_Pos:4
Relay_Log_Space:3630
直到条件:无
Until_Log_File:
Until_Log_Pos:0
Master_SSL_Allowed:不
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:1519187
1排(0.00秒)
上面突出显示的行必须指示相关日志文件,Slave_IO_Running和Slave_SQL_Running:必须为YES。
第6步:
主人1:
显示主状态;
+ ------------------------ + ---------- + ------------- - + ------------------ +
|
文件|
职位|
Binlog_Do_DB |
Binlog_Ignore_DB |
+ ------------------------ + ---------- + ------------- - + ------------------ +
| MysqlMYSQL01-bin.000008 |
410 |
adam |
|
+ ------------------------ + ---------- + ------------- - + ------------------ +
1排(0.00秒)
上述情况适用于主从,现在我们将为同一系统创建一个从站主站点,并且它将作为主站主。
第7步:
在Master2 / Slave 1上,编辑my.cnf和主表项:
[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
#默认使用旧密码格式与mysql 3.x兼容
#客户端(那些使用mysqlclient10兼容包)。
old_passwords = 1
server-id = 2
master-host = 192.168.16.4
master-user =复制
master-password = slave
主端口= 3306
log-bin#信息成为主人添加
binlog-do-db = adam
[mysql.server]
user = mysql
basedir = / var / lib
[mysqld_safe]
err-log = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid
第8步:
在master1上为master1创建复制从属帐户:
mysql> grant replication slave on *.* to 'replication'@192.168.16.4 identified by 'slave2';
第9步:
在master1上编辑my.cnf,了解其主人的信息。
[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
#默认使用旧密码格式与mysql 3.x兼容
#客户端(那些使用mysqlclient10兼容包)。
old_passwords = 1
log-bin
binlog-do-db = adam
binlog-ignore-db = mysql
binlog-ignore-db = test
server-id = 1
信息成为Minion。
master-host = 192.168.16.5
master-user =复制
master-password = slave2
主端口= 3306
[mysql.server] user = mysqlbasedir = / var / lib
第10步:
重新启动mysql master1和master2。
在mysql master1上:
mysql> start slave;
在mysql master2上:
mysql > show master status;
在mysql master 1:
mysql> show slave status\G;
*************************** 1.行******************** *******
Slave_IO_State:等待主人发送事件
Master_Host:192.168.16.5
Master_User:replica
Master_Port:3306
Connect_Retry:60
Master_Log_File:Mysql1MYSQL02-bin.000008
Read_Master_Log_Pos:410
Relay_Log_File:Mysql1MYSQL01-relay-bin.000008
Relay_Log_Pos:445
Relay_Master_Log_File:Mysql1MYSQL02-bin.000008
Slave_IO_Running:是的
Slave_SQL_Running:是的
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:0
Last_Error:
Skip_Counter:0
Exec_Master_Log_Pos:410
Relay_Log_Space:445
直到条件:无
Until_Log_File:
Until_Log_Pos:0
Master_SSL_Allowed:不
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:103799
1排(0.00秒)
错误:
未指定查询
检查hightereded行,确保它的运行。 现在,您可以在数据库中创建表,您将看到从站中的更改。 请享用!!