mysql主机ip地址为192.168.8.149,192.168.8.164
配置之前首先确认数据库为初始化状态,数据库有数据的话需要将数据库内容全部,备份,之后清空。
149主机为主 164为从
更改配置文件,首先检查你的主服务器上的mysql主配置文件中是否已经在[mysqld]模块下配置了log-bin和server-id,上面的log-bin和server-id的值都是可以改为其他值的,如果没有配置,首先关闭mysql服务器,然后添加上去,接着重启服务器。注意一个架构里面mysql数据库的的server-id值设置为唯一。
在配置文件中加入如下配置内容
创建用户,每一个从服务器都需要用到一个账户名和密码来连接主服务器,可以为每一个从服务器都创建一个账户,也可以让全部服务器使用同一个账户。
创建repl用户,密码为Ron_master_1,192.168.8网段都可登录
CREATE USER 'repl'@'192.168.8.%' IDENTIFIED WITH mysql_native_password BY 'Ron_master_1';
REPLICATION SLAVE权限。常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制。赋予repl用户所有权限,并且该网段的所有ip都可登录
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.8.%';
刷新配置
FLUSH PRIVILEGES;
获取149当前binary log文件名和位置,(position)File和Position的值,之后要用。
SHOW MASTER STATUS;
更改配置文件,首先检查你的主服务器上的mysql的主配置文件中是否已经在[mysqld]模块下配置了log-bin和server-id,在这里本人配置了log-bin,从服务器不需要配置log-bin也可以实现效果。主服务器和从服务器的server-id值必须不同。
如果配置的时候开启了mysql,配置完成之后重启mysql服务器
之后重新登录,设置以下的配置文件
change master to
master_host='',
master_user='',
master_password='',
master_port=,
master_log_file='',
master_log_pos=;
get_master_public_key=1;
配置说明:
master_host : 主mysql库的IP地址
master_user : 访问主mysql库进行主从复制的用户名(该用户在主库创建的)
master_password : 访问主库进行主从复制的用户名对应的密码
master_log_file : 从哪个日志文件开始同步(上述查询master状态中展示的有)
master_log_pos : 从指定日志文件的哪个位置开始同步(上述查询master状态中展示的有)
master_port= 端口
164主机配置如下
change master to
master_host='192.168.8.149',
master_user='repl',
master_password='Ron_master_1',
master_port=3316,
master_log_file='mysql-bin.000005',
master_log_pos=680;
在slave上查看主从同步状态
show slave status\G;
\G : 在MySQL的sql语句后加上\G,表示将查询结果进行按列打印,可以使每个字段打印到单独的行。即将查到的结构旋转90度变成纵向;
显示两个yes表示没有问题
开启主从同步
start slave;
结束同步
stop slave;
重启同步
reset slave;
刷新
flush privileges;
之后可以测试在主服务器上面创建库创建表,从mysql主机能不能同步过来。
自此mysql主从配置完成