1.认识主从复制
1 实现原理
- 主库db的更新事件(update、insert、delete)被写到binlog
- 主库创建一个binlog dump thread,把binlog的内容发送到从库
- 从库启动并发起连接,连接到主库
- 从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log
- 从库启动之后,创建一个SQL线程,从relay
log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db
2.应用场景
2.MySQL安装配置
链接地址
3.设置用户和赋权限
链接地址
4.从节点配置
MySQL安装和主节点一样,选择5.7的版本即可。
1.从节点binlog配置
链接地址
2.从节点relaylog配置
链接地址
5.从节点配置master节点信息
change master to master_host="host" ,master_port=masterport,master_user="username",master_password="password",master_log_file="mysql-bin.000001",master_log_pos=0;
6.从节点启动
登录从节点MySQL
start slave;
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.107
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 154
Relay_Log_File: relay-bin.000007
Relay_Log_Pos: 367
Relay_Master_Log_File: mysql-bin.000003
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: 734
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
其中的 Slave_IO_Running: Yes 、 Slave_SQL_Running: Yes 显示yes表示启动成功 注意:防火墙需要关闭,在var/lib/mysql 下的auto.cnf文件的uuid不能相同
|