Mysql 主从搭建
- MYSQL主从复制环境构建至少需2台服务器,可以配置1主多从,多主多从等
主从版本尽量一致,避免出现未知bug。
如何安装不在阐述,MySQL安装参考
-
master
:修改配置文件
# 编辑配置文件
vim /etc/my.cnf
# 修改id 同一环境下不能有重复,用于身份标识
server-id = 1
# 打开二进制日志
log-bin = mysql-bin
- 进入MySQL执行命令
# 授予slave远程连接的权限
grant replication slave on *.* to 'slave'@'%' identified by '123456';
#刷新权限
flush privileges;
-
slave
: 配置
slave 不需要开启二进制日志
# 进入MySQL shell 界面
change master to
master_host='192.168.1.115',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=297;
# 开启
slave start;
# 查看状态
show slave status\G
-----------------------------------------------
#参数:
master_host: master主机ip
master_user:master授权账户
master_password:master授权账户密码
master_log_file:master主机 bin-log文件名
master_log_pos:同步开始节点
show slave status
mysql> show slave status \G;
*************************** 1. row ***************************
#I/O线程连接Master状态
Slave_IO_State: Waiting for master to send event
Master_Host: 10.8.30.124
Master_User: tongbu
Master_Port: 3306
#主从连接失败,重试时间间隔;
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
# I/O线程已读取的Master二进制日志文件的位置;
Read_Master_Log_Pos: 2153
#SQL线程读取和执行的中继日志文件的名称
Relay_Log_File: localhost-relay-bin.000002
#SQL线程已读取和执行的中继日志文件的位置
Relay_Log_Pos: 2214
Relay_Master_Log_File: mysql-bin.000003
######################################
# 确认都是yes
#I/O线程是否被启动并成功地连接到主服务
Slave_IO_Running: Yes
#SQL线程是否被启动
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: 2153
Relay_Log_Space: 2374
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:
#lave端SQL线程和I/O线程之间的时间差距,单位为秒,常被用于主从延迟检查方法之一。
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
创建数据,查看slave是否同步
create database mysql_ab_test charset=utf8;
-
踩过的坑
Access denied for user 'slave'@'localhost' (using password: YES)
原因:身份验证不通过
解决:确认账户权限无误,正常连接,数据未同步
防火墙是否放行,setenforce关闭
网友评论