参考博客:https://blog.csdn.net/xlgen157387/article/details/51331244
A. 准备:多台服务器,且都可以互相随意访问root用户,都可以随意进行远程连接,开放3306端口,简单来说就是本地可以随意连接上两台服务器的mysql --- root用户
B. 主服务器,修改my.cnf,windows下修改my.ini配置
注:在[mysqld]下增加如下配置:
log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=mytest
server-id:用于标识唯一的数据库,这里设置为2,在设置从库的时候就需要设置为其他值
binlog-ignore-db:表示同步的时候ignore的数据库
binlog-do-db:指定需要同步的数据库
例子:
---配置完成后,重启mysqld服务,
输入以下命令 --- 分三次,
GRANT FILE ON *.* TO 'root'@'从机IP' IDENTIFIED BY '连接密码';
GRANT REPLICATION SLAVE ON *.* TO 'root'@'从机IP' IDENTIFIED BY '连接密码';
FLUSH PRIVILEGES
上述配置完成后,输入命令:show master status;
返回结果如果有值,如:
则表示配置完成,继续从库配置
C. 从库配置,一样开启配置文件,在[mysqld]下配置如下内容:
注:ignore表示忽略,和主库一致,do-db也和主库一致
log-bin=mysql-bin
server-id=3
binlog-ignore-db=information_schema
binlog-ignore-db=sys
binlog-ignore-db=mysql
replicate-ignore-db=mysql
replicate-do-db=mytest
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
配置完成后,执行:show slave status; 发现并无结果,全部为空
继续操作:
在从库中尚未配置和谁连接,所以需要执行以下命令:
mysql> stop slave; #关闭Slave
mysql> change master to master_host='192.168.1.1',master_user='root',master_password='123456',master_log_file='mysql-bin.000004', master_log_pos=28125;
mysql> start slave; #开启Slave
注:上面的绿色字需要和主库查出来的参数一致!!!,如主机IP,用户名,密码,file名,pos码等等
在从库中执行:show slave status;观察结果:
至此,配置完成,在主库进行增删改查,包括新建表等等所有操作,在从库都会自动实现复制,同步
真正实现了主从复制,读写分离