mysql服务器主从分离
参考:http://www.php.cn/code/19580.html
原理:
- 数据库有个bin-log二进制文件,记录了所有sql语句。
- 我们的目标就是把主数据库的bin-log文件的sql语句复制过来。
- 让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。
首先先两台服务器安装好mysql,同时都开启log-bin写日志功能
主从分离就是主服务器负责写【innodb】,多台从服务器负责读【myisam】就好了。
关闭防火墙service iptables stop
和setenforce 0
show global variables like '%log%';
查看log_bin启动状态
在my.cnf里面:
添加server-id=1(主)
注释掉 bind-address = 127.0.0.1和binlog_do_db 和 binlog_ignore_db(主)
server-id=76(从)
同步两个数据库和表
主服务器执行:
grant replication slave on *.* to 'mysqlroot'@'%' identified by '111111';// 创建个账号专门用来同步数据
show master status; // 显示日志状态,对应的填到下面的语句中000003和896
从服务器执行:
change master to master_host=‘39.108.172.xxx’,master_user=‘mysqlroot’,master_password=‘111111’,master_log_file=‘mysql-bin.000003’,master_log_pos=896;// 注意加黑体的参数
start slave;// 开启从服务
show slave status\G // 查看从服务状态,下面两个选项都要为Yes (Slave_IO_Running,Slave_SQL_Running)
最后测试,主服务器插入数据,再查看从服务器,OK了
原理参考:
https://www.cnblogs.com/gl-developer/p/6170423.html
https://blog.csdn.net/daicooper/article/details/79905660
https://blog.csdn.net/doupei2006/article/details/8004781
https://www.cnblogs.com/zhangjianbing/p/9039767.html