由于本机已安装了wamp了,打算再安装一个mysql,做主从同步配置,wamp自带的mysql版本是5.7.14,所以最好下载安装的mysql也是这个版本,但由于mysql官网上只有5.7.22最接近,所以安装的是5.7.22,安装步骤详见:https://www.pzo.cc/5366.html
由于3306端口已被占用,所以新安装的mysql5.7.22只有换一个端口了,修改my.ini,将3306换成其他的端口号即可,我这里填的是3309
确保两个mysql服务都能正常启动后,就可以开始配置了。
环境说明:
主Mysql:
ip:127.0.0.1
端口:3309
账号:root
密码:123456
从MySQL:
ip:127.0.0.1
端口:3308
账号:root
密码:空
配置主库(Master)
修改主库my.ini配置文件
在my.ini的配置文件中,添加如下信息:
[mysqld]
log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema
binlog-do-db=test
说明:log-bin=mysql-bin代表开启MySQL的二进制日志记录,开启后,mysql的更新和插入操作将会记录日志,通过该日志文件,实现从数据库的复制操作。server-id为主MySQL的id号,binlog-do-db为要同步的数据库名,binlog-ignore-db为要忽略同步的数据库名。
重启主库
net stop mysql-5.7.22
net start mysql-5.7.22
给从库赋权限
赋予从库权限账号,允许用户在主库上读取日志,赋予从库有File权限及REPLICATION SLAVE的权限。
grant FILE on *.* to 'root'@'127.0.0.1' identified by 'root';
grant replication slave on *.* to 'root'@'127.0.0.1' identified by 'root';
flush privileges;
注:如果你的从库不是在本机上安装的,则需将127.0.0.1改成从库真实的ip地址。
重启主库,登录mysql,查看主库信息
show master status;
File是同步会使用到的binlog文件,Position是同步的时候也要用到的。
主库配置结束。
配置从库(Slave)
修改从库my.ini配置文件
[mysqld]
log-bin=mysql-bin
server-id=3
binlog-ignore-db=information_schema
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
重启从库,进入mysql,配置同步
stop slave;
change master to master_host='127.0.0.1',master_port=3309,master_user='root',master_password='123456',master_log_file='mysql-bin.000002', master_log_pos=197378;
start slave;
master_log_file和master_log_pos就填写前面主库查到的信息。
查看同步状态
show slave statusG;
如果Slave_IO_Running显示为Connecting,则说明从库没有连上主库,需要检查下ip地址,账号密码,端口,位置等是否正确。