实现mysql8.0主从复制
#主机192.168.6.132,从:192.168.6.130 mysql-server 8.0.26
#主数据库配置
#修改server-id号
[root@xinye ~]#vim /etc/my.cnf
[mysqld]
server-id=32 #建议设置成当前设备IP尾号避免冲突
#查看二进制文件和位置
mysql> show master logs;
+------------------+-----------+-----------+
| Log_name | File_size | Encrypted |
+------------------+-----------+-----------+
| mysql-bin.000001 | 156 | No |
+------------------+-----------+-----------+
#创建允许复制数据权限的账号
mysql> create user repluser@'192.168.6.%' identified by '123456';
mysql> grant replication slave on *.* to 'repluser'@'192.168.6.%';
#从节点配置
[root@centos7-130 ~]#vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
server-id=30 #插入数据库ID
read_only=ON #设置成只读不能修改数据
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/run/mysqld/mysqld.pid
#连接主数据库配置
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.6.132', #主机地址
-> MASTER_USER='repluser', #复制数据的账号
-> MASTER_PASSWORD='123456', #密码
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='mysql-bin.000001', #二进制文件
-> MASTER_LOG_POS=156, #二进制节点
-> MASTER_CONNECT_RETRY=10;
#使用有复制权限的用户账号连接至主服务器,并启动复制线程
mysql> start slave;
#
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.6.132
Master_User: repluser
Master_Port: 3306
Connect_Retry: 10
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 1066
Relay_Log_File: centos7-130-relay-bin.000002
Relay_Log_Pos: 1233
Relay_Master_Log_File: mysql-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: 1066
Relay_Log_Space: 1447
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: 32
Master_UUID: 90b7c0ef-9f4e-11ec-99b7-000c297b4c59
Master_Info_File: mysql.slave_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:
Master_public_key_path:
Get_master_public_key: 0
Network_Namespace:
复制冲突的解决
#方法1 MariaDB [(none)]> stop slave; MariaDB [(none)]> set global sql_slave_skip_counter=1; #表示跳过前面一条复制事件 MariaDB [(none)]> start slave; #方法2 [root@slave1 ~]#vim /etc/my.cnf.d/mariadb-server.cnf [mysqld] slave_skip_errors=1050 #服务器选项,只读系统变量,指定跳过事件的ID [root@slave1 ~]#systemctl restart mariadb

浙公网安备 33010602011771号