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 不通。