mysql主从配置和nginx负载均衡

2020-03-01  本文已影响0人  蛐蛐儿阳

1,

配置文件, 主库就两行代码:

server-id= 1

log-bin = mysql-bin

从库就一行代码

server-id= 2

重新在本地配置时, show master

status;  中,主机position 的id总是变化的, 导致从库失败。

查看从库状态。

show SLAVE status;

可以查看从库状态, 其中last_error字段记录了最后同步失败的日志。

我第一错误时应为账号密码错误,导致不能同步, last_error记录了错误信息。

解决办法。

先去主库查看好状态,

show master status;

 然后到从库。

STOP SLAVE;

CHANGE MASTER TO

master_host = '172.17.0.4',

master_user = 'guanliyang',

master_password =

'123456',

master_log_file =

'mysql-bin.000002',

master_log_pos

= 7573;

start SLAVE;

show SLAVE status;

就是暂停,重新设置,开启。就可以同步了。

容器长装的几个软件

给容器里面都安装上ifconfig, ping.

Apt-get update

apt-get

install inetutils-ping

apt-get install net-tools

ping命令和ifconfig 查看ip命令。

总结下, 开第三个时又同步失败,原因查错误日志,是账号写错了。

一点一个同步错误, 以后的sql就算正确也不能继续同步。解决方法就是上面,重新设置一下。

正式环境下, 从库一定要做禁止数据写入操作, 否则一旦程序直接写入从库, 比如id=2,从库再从主库同步id=2时就会出错,导致从库不能再同步数据。需要重新设置从库。

这时情况就会非常复杂,印象里2016年在校内外遇到过一次。

解决方案是半夜一点, 暂停服务器, 备份数据,

主库A表和从库A表做对比,将从库A表有,主库A表没有的数据导入A表。再导入从库,。先保证主从库数据统一,再重新设置从库,重启服务。

1, docker run -itd  -p 8001:80 -v/Users/guanliyang/php:/usr/share/nginx/html -v /Users/guanliyang/php/conf.d/nginx1.conf:/etc/nginx/nginx.conf  --name nginx1 nginx

dockerrun -itd  -p 8002:80 -v /Users/guanliyang/php:/usr/share/nginx/html -v  /Users/guanliyang/php/conf.d/nginx2.conf:/etc/nginx/nginx.conf  --name nginx2 nginx

dockerrun -itd  -p 8003:80 -v /Users/guanliyang/php:/usr/share/nginx/html -v  /Users/guanliyang/php/conf.d/nginx3.conf:/etc/nginx/nginx.conf  --name nginx3 nginx

每次nginx容器启动失败的话, 直接看longs,有为何启动失败的详细信息。

nginx访问出错,比如403,404,50*的话,docker的 longs里有详细信息。不用去容器里面找日志。

mac上, php的配置

fastcgi_pass

172.17.0.1:9000;

fastcgi_pass

172.17.0.3:9000;

是通过这个ip相连的, linux上并无此问题。

mac报错

6#6: *30 no liveupstreams while connecting to upstream, client: 172.17.0.1, server: , request:"GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1/favicon.ico",host: "localhost", referrer: "http://localhost/

还是那个问题,mac上ping docker 不通。

上一篇 下一篇

猜你喜欢

热点阅读