首先准备两台或以上mysql 确保能连接成功!
-
在master主库开启log_bin功能 找到mysqlmy.ini位置
2.添加以下内容(注意备份源文件,并且尽量不要用原始编辑器打开,会修改编码格式,导致mysql无法正常启动)database 注意!一定改成自己的指定数据库!
# 配置要给Slave同步的数据库
binlog-do-db=database
# 不用给Slave同步的数据库,一般是Mysql自带的数据库就不用给Slave同步了
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
# 自动清理30天前的log文件
expire_logs_days=30
# 启用二进制日志
log-bin=mysql-bin
#集群唯一ID
server-id=1
在mysql可视化面板运行show variables like '%log_bin%'; 查看 日志开启状态
show variables like '%log_bin%';
在主库中创建用户,并设置该用户授予复制权限
#切换至mysql库中
use mysql
#创建用户并设置可访问的地址为所有,密码为master
CREATE USER 'master'@'%' IDENTIFIED BY 'master'
#刷新
FLUSH PRIVILEGES
#给master用户配置复制权限,可访问库为所有,可访问地址为所有
grant replication slave on *.* to 'master'@'%'
#查看权限是否配置成功
show grants for master
#查看网络访问策略是否配置成功
select user,host from user
查看当前库中数据的日志名称及偏移量
File和Position的值后面配置从库时需要用到。
show master status
-
在一台mysql 在从库中配置 my.ini文件 前提mysql连接成功
server-id=2
把默认idserver-id=1改成2就行 不冲突即可 然后重启mysql服务登录mysql进行从库的读取配置 可以在可视化面板直接运行
#停止主从 stop slave #设置主从配置 change master to master_host='127.0.0.1', master_port=3306, master_user='master', master_password='master', master_log_file='mysql-bin.000001', master_log_pos=1000 #启动主从 start slave;
设置的语句解释 一定要对应自己的 不然实现不了!!!
#master_host 主库ip #master_port 主库端口 #master_user 主库提供可用来主从复制的用户名 #master_password 同上的密码 #master_log_file 主库中log日志的名称 也就是File #master_log_pos 主库中log日志的偏移量 也就是Position
配置完成后查看主从状态 : show slave status
show slave status
当以下两种状态都为yes时就设置成功
Slave_IO_Runing:Yes
Slave_SQL_Runing:Yes继续配置从库2
先修改my.ini文件 的 server-id=3 或者其他
然后停止服务继续设置配置即可
#停止主从
stop slave
#设置主从配置
change master to master_host='127.0.0.1', master_port=3306,
master_user='master', master_password='master',
master_log_file='mysql-bin.000001', master_log_pos=1000
#启动主从
start slave;
记得查看状态
如果设置失败先停止主从并重新配置即可 记得重启mysql服务
#先停止主从才能清除
stop slave
#清除主从
reset slave all
至此mysql的主从复制基本实现。