当前位置: 代码迷 >> 综合 >> mysql8 主从复制配置(一主一从)
  详细解决方案

mysql8 主从复制配置(一主一从)

热度:53   发布时间:2023-11-09 18:03:14.0

主机配置

master :192.168.66.140 
slave :192.168.66.141

主从配置

  • 主机 my.cnf的配置
[mysqld]
# 主服务器唯一ID
server-id=100
# 启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
# 设置需要复制的数据库
binlog-do-db=testdb
# 设置logbin格式
binlog_format=STATEMENT
  • 从机 my.cnf的配置
[mysqld]
# 从服务器唯一ID
server-id=200
# 启用中继日志
relay-log=mysql-relay

主机重启并获取相关参数

重启 :systemctl restart mysqld.service
登录 :mysql -u root -p
查看 master状态 : show master status; (mysql命令行)
mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000002 |      156 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+ 
-- File : binlog日志文件
-- Position : slave需要重写binlog日志文件的位置
-- Binlog_Do_DB : 需要同步的数据库
-- Binlog_Ignore_DB : 需要忽略的数据库

从机重启并设置相关参数

登录 :mysql -u root -p
mysql> CHANGE MASTER TO MASTER_HOST='192.168.66.140',-> MASTER_PORT=3306,-> MASTER_USER='root',-> MASTER_PASSWORD='123456',-> MASTER_LOG_FILE='binlog.000002', -- 就是master status中的File-> MASTER_LOG_POS=156; -- 就是master status中的Position 
Query OK, 0 rows affected, 2 warnings (0.02 sec)mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
-- 查看从机状态
-- 查看 Slave_IO_Running: Yes
-- Slave_SQL_Running: Yes
-- 即可
mysql> show slave status\G; 
*************************** 1. row ***************************Slave_IO_State: Connecting to masterMaster_Host: 192.168.66.140Master_User: rootMaster_Port: 3306Connect_Retry: 60Master_Log_File: binlog.000002Read_Master_Log_Pos: 156Relay_Log_File: mysql-relay.000001Relay_Log_Pos: 4Relay_Master_Log_File: binlog.000002Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 156Relay_Log_Space: 156Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 2061Last_IO_Error: error connecting to master 'root@192.168.66.140:3306' - retry-time: 60 retries: 1 message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 0Master_UUID: Master_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: 201025 20:35:14Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: Master_public_key_path: Get_master_public_key: 0Network_Namespace: 
1 row in set, 1 warning (0.01 sec)ERROR: 
No query specified