记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
 
0

mysql主从之双主配置

发表者:admin分类:数据库2020-11-30 10:48:18 阅读[725]

mysql主从之双主配置

mysql双主配置

mysql双主其实就是互相同步,互为主从

任意一台都能够执行插入动作

生产环境用得非常少,因为还是担心数据一致的问题

生产环境一般来说主从已经够用,如果需要集群高可用,只需要再配置keepalive,使用VIP连接Mysql就可以了。

172.19.132.121的配置,自增的话从1开始,每次递增2.数值是1,3,5,7……

复制代码
[mysqld]
bind-address=0.0.0.0
port=3306
datadir=/data/mysql
socket=/data/mysql/mysql.sock
user=mysql
skip-name-resolve
slow_query_log=on
long_query_time=1
slow_query_log_file=/data/mysql/mysql-slow.log
innodb-file-per-table=1
innodb_flush_log_at_trx_commit = 2
log_warnings = 1
connect_timeout = 60
net_read_timeout = 120
performance_schema_max_table_instances = 400
server-id = 1
log-bin=master-bin
log-bin-index = master-bin.index
relay-log = relay-log
relay-log-index = relay-log.index
binlog_format = ROW
auto_increment_offset=1
auto_increment_increment=2

[mysqld_safe]
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid
复制代码

192.168.132.122的配置,自增的话从2开始,每次递增2,数值是2,4,6,8……

复制代码
[mysqld]
bind-address=0.0.0.0
port=3306
datadir=/data/mysql
socket=/data/mysql/mysql.sock
user=mysql
skip-name-resolve
slow_query_log=on
long_query_time=1
slow_query_log_file=/data/mysql/mysql-slow.log
innodb-file-per-table=1
innodb_flush_log_at_trx_commit = 2
log_warnings = 1
connect_timeout = 60
net_read_timeout = 120
performance_schema_max_table_instances = 400
server-id = 2
log-bin=master-bin
log-bin-index = master-bin.index
relay-log = relay-log
relay-log-index = relay-log.index
binlog_format = ROW
auto_increment_offset=2
auto_increment_increment=2


[mysqld_safe]
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid
复制代码

防止索引一致,导致插入失败

重启数据库

先赋予对应的权限

192.168.132.121配置

mysql> grant replication slave on *.* to 'replication'@'192.168.132.122' identified by '1234567';

192.168.132.122配置

mysql> grant replication slave on *.* to 'replication'@'192.168.132.121' identified by '1234567';

启动互相同步

192.168.121操作

复制代码
mysql>  change master to master_host='192.168.132.122',master_port=3306,master_user='replication',master_password='1234567',master_log_file='master-bin.000001',master_log_pos=154;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.132.122
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master-bin.000001
          Read_Master_Log_Pos: 463
               Relay_Log_File: relay-log.000002
                Relay_Log_Pos: 630
        Relay_Master_Log_File: master-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              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: 463
              Relay_Log_Space: 831
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 2
                  Master_UUID: 141defd2-9dab-11e9-8fe3-000c2963fd11
             Master_Info_File: /data/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> show mater logs;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mater logs' at line 1
mysql> show master logs;
+-------------------+-----------+
| Log_name          | File_size |
+-------------------+-----------+
| master-bin.000001 |       154 |
+-------------------+-----------+
复制代码

192.168.132.122操作

复制代码
mysql>  change master to master_host='192.168.132.121',master_port=3306,master_user='replication',master_password='1234567',master_log_file='master-bin.000001',master_log_pos=154;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.132.121
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master-bin.000001
          Read_Master_Log_Pos: 154
               Relay_Log_File: relay-log.000002
                Relay_Log_Pos: 321
        Relay_Master_Log_File: master-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              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: 154
              Relay_Log_Space: 522
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1
                  Master_UUID: 77278e78-9da8-11e9-bc6c-000c2991dd19
             Master_Info_File: /data/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)
复制代码

查看进程

mysql> mysql> show processlist;

验证双主状态

复制代码
132.121创建数据库
mysql> create database darren;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| darren             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
132.122查看并创建数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| darren             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
mysql> create database darren1;
Query OK, 1 row affected (0.00 sec)
132.121查看
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| darren             |
| darren1            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
复制代码

 

其他指令比较

复制代码
132.121操作
mysql> use darren;
Database changed
mysql> create table test( id int primary key NOT NULL auto_increment, name varchar(200) );
Query OK, 0 rows affected (0.01 sec)

mysql> show master logs;
+-------------------+-----------+
| Log_name          | File_size |
+-------------------+-----------+
| master-bin.000001 |       554 |
+-------------------+-----------+
1 row in set (0.00 sec)
132.122插入一个数据
mysql> use darren;
Database changed
mysql> insert into test values (null, 'shijiange');
Query OK, 1 row affected (0.00 sec)
132.121查看
mysql> show binlog events in 'master-bin.000001';     #同步的数据没有记录到日志中来
+-------------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------------------------------------+
| Log_name          | Pos | Event_type     | Server_id | End_log_pos | Info                                                                                             |
+-------------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------------------------------------+
| master-bin.000001 |   4 | Format_desc    |         1 |         123 | Server ver: 5.7.26-log, Binlog ver: 4                                                            |
| master-bin.000001 | 123 | Previous_gtids |         1 |         154 |                                                                                                  |
| master-bin.000001 | 154 | Anonymous_Gtid |         1 |         219 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                             |
| master-bin.000001 | 219 | Query          |         1 |         324 | create database darren                                                                           |
| master-bin.000001 | 324 | Anonymous_Gtid |         1 |         389 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                             |
| master-bin.000001 | 389 | Query          |         1 |         554 | use `darren`; create table test( id int primary key NOT NULL auto_increment, name varchar(200) ) |
+-------------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------------------------------------+
mysql> select * from test;
+----+-----------+
| id | name      |
+----+-----------+
|  2 | shijiange |              #是以2开始,每次加2
+----+-----------+
同时插入一条数据
mysql> insert into test values (null, UUID());
Query OK, 1 row affected (0.01 sec)

mysql> select * from test;
+----+--------------------------------------+
| id | name                                 |
+----+--------------------------------------+
|  2 | shijiange                            |
|  3 | eb11d3b8-9e7d-11e9-8450-000c2991dd19 |    #以奇数开始,每次加2
+----+--------------------------------------+
mysql> insert into test values (null, UUID());
Query OK, 1 row affected (0.01 sec)

mysql> select * from test;
+----+--------------------------------------+
| id | name                                 |
+----+--------------------------------------+
|  2 | shijiange                            |
|  3 | eb11d3b8-9e7d-11e9-8450-000c2991dd19 |
|  5 | f331ca26-9e7d-11e9-8450-000c2991dd19 |
+----+--------------------------------------+
132.122插入数据
mysql> insert into test values (null, UUID());
Query OK, 1 row affected (0.01 sec)

mysql> select * from test;
+----+--------------------------------------+
| id | name                                 |
+----+--------------------------------------+
|  2 | shijiange                            |
|  3 | eb11d3b8-9e7d-11e9-8450-000c2991dd19 |
|  5 | f331ca26-9e7d-11e9-8450-000c2991dd19 |
|  6 | f8ca41f9-9e7d-11e9-ba37-000c2963fd11 |
+----+--------------------------------------+
4 rows in set (0.00 sec)

mysql> insert into test values (null, UUID());
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+----+--------------------------------------+
| id | name                                 |
+----+--------------------------------------+
|  2 | shijiange                            |
|  3 | eb11d3b8-9e7d-11e9-8450-000c2991dd19 |
|  5 | f331ca26-9e7d-11e9-8450-000c2991dd19 |
|  6 | f8ca41f9-9e7d-11e9-ba37-000c2963fd11 |
|  8 | 043f7a3f-9e7e-11e9-ba37-000c2963fd11 |
+----+--------------------------------------+
132.121插入数据
复制代码

双主配置完成



转载请标明出处【mysql主从之双主配置】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论