MYSQL设置读写分离 主从同步
目录
1.打开主数据库配置文件
vim /etc/my.cnf
2.在主服务器master上配置开启Binary log,在[mysqld]下面添加:
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
3.保存后,重启mysql服务
service mysql restart
4.检查配置效果,执行
mysql> SHOW MASTER STATUS;
记住图里圈起的数据,配置从服务器有用
5.配置从服务器的mysql配置文件my.cnf
在[mysqld]节点下面添加:
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
这里的server-id需要是唯一值
配置完成后需要重启mysql服务
service mysql restart
6.实现N个数据库的关联
(一)在主服务器执行
mysql> create user REPL;
mysql> GRANT REPLICATION SLAVE ON . TO ‘REPL’@‘从服务器ip’ IDENTIFIED BY ‘password’;
mysql> flush privileges;
这三行代码的意思分别是:
1、创建一个用户REPL
2、赋予其REPLICATION SLAVE权限(复制), . 表明这个权限是针对主库的所有表的,从服务器ip是从服务器的ip地址(也可以为%,表示所有客户端都可能连),password是REPL用户密码。
3、刷新MySQL的权限到内存;因为MySQL启动后,所有用户权限都是加载到内存中的;更新权限的操作不会立马刷新到内存中,下一次启动时才重新生效;flush privileges让MySQL重新加载权限,这样能立马生效。
(二)在从服务器执行
change master to master_host=‘主服务器ip’,master_port=3306,master_user=‘REPL’,master_password=‘password’,master_log_file=‘master-bin.000009’,master_log_pos=467;
master_log_file和master_log_pos与前面圈起来的相对应
完成后进行启动服务
start slave;
然后执行(注意这段命令尾部不要加;号,不然报错)
show slave status \G
如图,这里已经成功实现了,我们可以进行测试一下
在主服务器执行
create database test_2;
接着到从服务器进行查看是否同步过来了,执行
show databases;
从图里可看出,同步过来了,其他增删查改操作也一样会同步的哦
原文地址:https://blog.csdn.net/qq_32748609/article/details/96988747