window环境下配置MySQL5.7主从复制同步的详细教程
前言:
最近公司项目要在“程序客户端”和“数据端”加入分布式中间件mycat,目的是为了减少单服务器的负载压力,提高数据库的性能,其中是为了:
1. 采用主从数据库的读写分离、
2. 采用分库分表特性。
关于mycat详细资料,请参考官网[:https://www.mycat.io/]
在使用mycat的主从数据库的读写分离特性,首先要配置好==mysql==的主从复制。
1.环境准备:
master(主数据库)服务器ip:自己的ip,账号为root,密码root
slave(从数据库)服务器ip:自己的ip,账号为root,密码root
都在两个服务器上安装mysql5.7 ==注:两个服务器为:win7==
2.配置文件
master(主数据库)服务器配置:
找到master服务器mysql配置文件my.ini(linux中的mysql配置文件都在/etc/my.cnf),用记事本打开,在[mysqld]下添加主服务相关内容
==这里要特别说明==:
在window,mysql5.7版本的数据库,它的my.ini文件不在mysql的安装路径下,而是在c:\programdata\mysql\mysql server 5.7(我的),且programdata这个文件夹是默认隐藏的,要打开显示
相关操作如下:
图片
my.ini文件配置一下内容
log-bin=mysql-bin
log-bin-index=mysql-bin.index
server-id=201 --服务id,和slave 的server-id不一样,一般问ip的后3位
sync_binlog=224
binlog-do-db= testdb --做主从同步的数据库名
binlog-ignore-db= mysql –忽略不同步的数据库名
binlog-ignore-db= performance_schema
binlog-ignore-db= information_schema
完成配置文件my.ini之后重启mysql服务。
3.授权:授权slave同步数据的账号密码。
本人此次试验是一主一从
在192.168.8.201(主)中创建一个192.168.8.193(从)主机中可以登录的mysql用户
1. 授权命令为:
grant replication slave on *.* to 'mysql3'@'192.168.8.193' identified by '123456';;//账号:mysql3 为slave使用的账号
2.刷新权限
mysql>flush privileges;
3.查看192.168.95.11mysql服务器二进制文件名与位置
mysql>show master status;
运行结果如下:
在master端,使用以下命令查看master端状态,需要记住状态的file,和position参数,在slave配置中会用到。
4.slave服务器(192.168.8.193)配置
修改配置:在slave服务器中找到mysql的配置文件my.ini,用记事本打开,在[mysqld]下新增以下内容:
server-id=193 --服务id,和master 的server-id不一样,一般问ip的后3位
log-bin = mysql-bin
重启slave mysql服务;
5.告知二进制文件名与位置(在192.168.8.193中执行:)
change master to
master_host='192.168.8.201',
master_user='mysql3',
master_password='123456',
master_log_file='mysql-bin.000003',
master_log_pos=6913;
完成主从复制配置
6.测试主从复制( 在192.168.8.193中执行)
mysql>start slave; #开启复制
mysql>show slave status\g #查看主从复制是否配置成功
当看到slave_io_running: yes、slave_sql_running: yes才表明==状态正常==
7. 实际测试:–登陆192.168.8.201主mysql
mysql>show databases;
–登陆192.168.8.193从mysql
mysql>show databases;
192.168.8.201主mysql操作:
mysql>create database aa;
192.168.8.193从mysql操作:
mysql>show databases;
由上面两个结果图可得知,两主机达到了数据同步。主从复制的配置就是如此的简单。
8.完成mysql5.7主从复制