环境要求
- PHP7.1+,使用ThinkPHP6.0框架的话,运行环境要求PHP7.1+;
- 至少两个服务,当然不是真的买两台服务器
mysql基本操作:
登录mysql:mysql -uroot -p
回车后输入密码
1.登录主库执行脚本:
install plugin rpl_semi_sync_master soname ‘semisync_master.so’;
2.
登录从库执行脚本:
INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.so’;
3.修改
主库
的my.cnf配置文件(宝塔的在/etc/my.cnf)
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000 #此单位是毫秒
log-bin=mysql-bin #打开日志(主机需要打开)
server-id=1 #服务器id
log-bin-index=mysql-bin.index
sync_binlog=1
#给从机同步的库,可以多个
binlog-do-db=tp #从库的数据库名称
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
expire_logs_days=1
4.修改
从库
的my.cnf配置文件(宝塔的在/etc/my.cnf)
rpl_semi_sync_slave_enabled=1
server-id=2 #服务器id
#要从主机同步的库
replicate-do-db=tp #主库的数据库名
修改好之后,重新启动主从数据库的服务
5.
主库授权同步从库的账户
GRANT REPLICATION SLAVE ON *.* TO ‘从服务器登录账号’@’从服务器ip’ IDENTIFIED BY ‘从服务器登录密码’; #主数据库授权同步账户
FLUSH PRIVILEGES; #刷新权限
SHOW MASTER STATUS; #查看主服务状态
6.配置从库连接主库服务器的参数
CHANGE MASTER TO MASTER_HOST=’主服务器ip’,MASTER_USER=’上面配置的从服务器登录账号’, MASTER_PASSWORD=’上面配置的从服务器登录密码’,MASTER_LOG_FILE=’mysql-bin.000008′,MASTER_LOG_POS=1528;
start slave; #开启SLAVE同步
show slave status \G; #查看下slave状态
注意:MASTER_LOG_FILE=’mysql-bin.000008’,MASTER_LOG_POS=1528是通过前面的主数据库SHOW MASTER STATUS;得到
当Slave_IO_Running和Slave_SQL_Running都为Yes,说明主从复制配置成功,如果有必要停止或者撤销同步账号的权限,还可操作。
stop slave; #停止SLAVE同步
GRANT REPLICATION SLAVE ON *.* TO ‘root’@’188.180.0.228’ IDENTIFIED BY ‘XXXXXX’;# 撤销已经赋予给MySQL同步账户的权限
主:

从:

版权声明:本文为Fyx1987496919原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。