mysql之主从、主主同步

mysql之主从、主主同步

一、主从同步

       1、master:(虚拟机cenOS7上)

            a:ip:192.168.35.129

            b:修改 my.cnf

# 为了区分不同的mysql程序(只要mysql程序的数唯一)
server-id=2
# master的执行语句记录位置(slaver主要就是复制这上面的sql语句进行同步)
log-bin=master-bin

            c:访问用户及权限

重启:
#:service mysql restart
添加slaver的权限
# mysql -u root -p
# grant replication slave on *.* to 'sl'@'192.168.35.1' identified by '1234';
# flush privileges;

           d:查看状态

#:show master status;
如下:
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| master-bin.00001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.01 sec)

            f:防火墙(centos7使用的是firewall)

1、查看firewall是否打开了 3306端口
#:firewall-cmd --list-all
2、打开端口
#:firewall-cmd --add-port=3306/tcp --pernament

       2、slaver (window上)

            a:ip:192.168.35.1

            b:修改 my.cnf

# 为了区分不同的mysql程序(只要mysql之间的数唯一)
server-id=3

            c:开启slaver

1、修改master
mysql> CHANGE MASTER TO MASTER_HOST='192.168.35.129', MASTER_USER='sl',MASTER_PASSWORD='123',
MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=0;
(最后这一个是slaver从master日志第几行开始执行,一般出问题了都会在问题解决后,修改这一行)
2、开启
mysql> start slave;
3、开启状态
mysql> show slave status\G;

mysql之主从、主主同步_第1张图片      

            (ps:红色的两个参数最重要,正常工作需要这两个都是YES)  

        3、错误处理

            问题:

                在master添加一个库:create database temp; 而这个时候slave早就有了这个表。slave就会关闭同步。如下

            处理:(在slave中)

1、关闭 slave
mysql > stop slave;
2、删除temp库
mysql > drop database temp;
3、修改存放的master信息(主要是 MASTER_LOG_POS,就是上图的 Exec_Master_Log_Pos.)
mysql> CHANGE MASTER TO MASTER_HOST='192.168.35.129', MASTER_USER='fxl',MASTER_PASSWORD='123',
MASTER_LOG_FILE='mater-bin.000015',MASTER_LOG_POS=456;
4、启动
mysql> start slave;
5、查看
mysql> show slave status\G;
(如果 Slave_IO_Running和Slave_SQL_Running都是YES,也就正常了)

二、主主同步

    1、主主同步就是相互主从同步的关系。

    2、主键处理需要将自增数分开<奇偶>(最好是使用uuid)

auto-increment-increment = 2 //每次增长2
auto-increment-offset = 2 //设置自动增长的字段的偏移量,即初始值为2


你可能感兴趣的:(mysql,主从,主主)