mysql 8.4版本如何设置主从同步库
mysql 8.4版本如何设置主从同步库一、主从结构二、搭建步骤2.1 创建主节点和从节点实例2.2 进行主库数据全备份(可选)2.3 从库进行数据还原2.4 在主库创建数据同步用户2.5 从库进行主从同步设置2.6 启动主从配置三、主从状态查看3.1 确认主从同步功能正常3.2 判断主从之间是否有延迟3.3 主库监控主从同步情况说明为了数据库的高可用和读写分离设置mysql数据库的主从同步一、主从结构主机IP节点信息db01192.168.220.101主节点db02192.168.220.102从节点二、搭建步骤2.1 创建主节点和从节点实例从节点无数据2.2 进行主库数据全备份(可选)主备库mysql安装部署参考安装部署链接直接在从库上远程备份在从库上执行mysqldump命令远程连接主库导出全量数据再导入从库完成初始数据同步。具体命令如下# 在从库上执行远程备份主库数据[rootdb02 ~]mysqldump-uroot-p123456-h192.168.220.101-P3306-A--source-data --single-transaction/tmp/all.sql参数说明source-data在备份文件中可以记录备份数据位置点信息设置参数1 表示利用命令信息记录位置点等价于直接使用参数 --source-data即CHANGE MASTER TO MASTER_LOG_FILE‘binlog.000020’, MASTER_LOG_POS157;导出文件的这行信息设置参数2 表示利用注释方式记录位置点single-transaction在备份时会对备份的数据信息创建快照从而避免备份过程的全局锁对主库业务影响2.3 从库进行数据还原[rootdb02 tmp]# mysql -uroot -p123456 /tmp/all.sql同步后数据库显示情况2.4 在主库创建数据同步用户以创建copy1为例mysqlcreateusercopy1%identifiedby123456;授予读取binlog信息的权限mysqlgrantReplicationslaveon*.*tocopy1%;2.5 从库进行主从同步设置修改从库配置文件添加如下内容主库的server-id默认是1# 作用开启普通只读模式。read_onlyON# 作用开启超级只读模式是比 read_only 更严格的只读保护。super_read_onlyON# 服务的唯一编号server-id2# 开启mysql binlog功能log-binmysql-bin# binlog记录内容的方式记录被操作的每一行binlog_formatROW# 减少记录日志的内容只记录受影响的列binlog_row_imageminimal# 指定需要复制的数据库名,不指定默认全部replicate-do-dbjgyw重启 mysql 服务[rootdb02 ~]# service mysql restartShutting down MySQL..SUCCESS!Starting MySQL..SUCCESS!在主库查看当前使用的binlog日志以及起始的pos点mysqlSHOWBINARYLOGSTATUS;----------------------------------------------------------------------------|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|----------------------------------------------------------------------------|binlog.000010|158||||----------------------------------------------------------------------------在从库设置主节点信息mysqlCHANGE REPLICATION SOURCE TO -SOURCE_HOST192.168.220.101, -SOURCE_USERcopy1, -SOURCE_PASSWORD123456, -SOURCE_LOG_FILEbinlog.000010, -SOURCE_LOG_POS158;说明master_log_file 取主库 binglog 日志master_log_pos 取主库日志 Position2.6 启动主从配置在从库执行mysqlSTART REPLICA;至此搭建完成三、主从状态查看从库执行查看监控线程状态信息mysqlSTART REPLICA;Query OK,0rows affected(0.02sec)mysqlSHOW REPLICA STATUS\G ***************************1. row *************************** Replica_IO_State: Waitingforsourceto send event Source_Host:192.168.220.101 Source_User: copy1 Source_Port:3306Connect_Retry:60Source_Log_File: binlog.000010 Read_Source_Log_Pos:325Relay_Log_File: db02-relay-bin.000002 Relay_Log_Pos:492Relay_Source_Log_File: binlog.000010 Replica_IO_Running: Yes Replica_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:0Last_Error: Skip_Counter:0Exec_Source_Log_Pos:325Relay_Log_Space:702Until_Condition: None Until_Log_File: Until_Log_Pos:0Source_SSL_Allowed: No Source_SSL_CA_File: Source_SSL_CA_Path: Source_SSL_Cert: Source_SSL_Cipher: Source_SSL_Key: Seconds_Behind_Source:0Source_SSL_Verify_Server_Cert: No Last_IO_Errno:0Last_IO_Error: Last_SQL_Errno:0Last_SQL_Error: Replicate_Ignore_Server_Ids: Source_Server_Id:1Source_UUID: 469c63f8-b502-11f1-adab-000c29bba175 Source_Info_File: mysql.slave_master_info SQL_Delay:0SQL_Remaining_Delay: NULL Replica_SQL_Running_State: Replica hasreadall relay log;waitingformoreupdates Source_Retry_Count:10Source_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Source_SSL_Crl: Source_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position:0Replicate_Rewrite_DB: Channel_Name: Source_TLS_Version: Source_public_key_path: Get_Source_public_key:1Network_Namespace:3.1 确认主从同步功能正常状态中若以下两个状态信息结尾YES表示主从同步功能正常mysqlshow slave status\G ………… Slave_IO_Running: Yes Slave_SQL_Running: Yes3.2 判断主从之间是否有延迟#表示从库的 IO 线程当前正在读取的主库Master的二进制日志Binlog文件名Master_Log_File: binlog.000010#表示从库的 IO 线程在主库的 Binlog 文件中读取到的最后位置Read_Source_Log_Pos:325#表示从库的 SQL 线程当前正在处理的 Binlog 文件名,若存在复制延迟会有所不同Relay_Master_Log_File: binlog.000010#表示从库的 SQL 线程已经成功回放执行到的 Binlog 文件的位置Exec_Source_Log_Pos:325#表示从库的 SQL 线程在处理主库的 Binlog 数据时与主库的实时数据之间的延迟时间单位为秒Seconds_Behind_Master:0-- 值为0表示从库与主库之间的数据完全同步没有延迟。 -- 值大于0表示从库在应用 Binlog 数据时落后于主库数值越大延迟越严重3.3 主库监控主从同步情况mysqlSHOW REPLICAS\G ***************************1. row *************************** Server_Id:2Host: Port:3306Source_Id:1Replica_UUID: 4a2c60a3-b5c0-11f1-aacb-000c294b9bcb