[故障解决]Mysql-Atlas从库始终没有建立连接怎么办?
最近发现阿里云线上环境有一台hls模块的数据库从库一直没有连接,而主库却一直连接不断。在阿里云控制后台看到连接情况如下图:
上图是主库的,下面那个是从库的,两者差距很大,可见这样的配置是错误的,因为读库根本没有使用,也就是说读库的那份钱是在浪费!
来到对应的atlas服务器查看配置,看到atlas 的配置里规定管理接口的用户名和密码是默认的原始套餐,端口被改成了2346,如下面,
于是我们就在模块服务器(也就是图里的online-hls-001)上登录这个atlas服务器的管理端口,看一下效果:
发现mysql根本没有反应,可当我们telnet去atlas的2346端口的时候,发现端口是通的:
于是我们返回到atlas 的配置文件,把这台hls模块服务器的ip地址添加到clients-ips这个字段里。
然后再用hls服务器去测试一下atlas的管理端口,#mysql -hatlas服务器ip地址 -uuser -ppwd,然后使用#select * from backends;,发现里面的两个库一个连接成功,另一个是失败的:
两个库都可以ping通,state却有这样的差别。由此可见这台atlas根本没有连接到从库,导致从库的连接数始终为0。这个时候我们就要检查从库配置的账号密码是否正确,而且在阿里云控制后台给从库开启这个atlas的白名单,然后重新启动这个mysql-proxy进程,再登录atlas管理端口查看,发现从库由down转up了:
但是此时的atlas日志里却出现了很多forbidden的warning的提示:
这时候我们返回atlas的配置文件,把之前的修改过的client-ips这个字段注释掉,让所有合法ip都连接,然后重启atlas,这样这种forbidden ip的警告日志就会消失。
稍等一会,就会看到从库上也会出现连接数了,至此一切恢复到正常状态,故障排除!
本次故障排除感谢https://highdb.com/?s=atlas 这位大神的帮助!
[补充1]
数据库访问使用了事务的话,从库也会建立连接,只是连接量要小于“非事务访问”,而不是一点连接都没有。
[补充2]
一般来说,在atlas配置文件里,主库写一个,而从库最好把主库和从库都写进去,如果希望从库承担读的任务多一点的话,可以把权重调高,比如我想从库与主库的读任务比是2:1,那么就可以这么写:
#Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔 proxy-backend-addresses = 主库地址:3306 #Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔 proxy-read-only-backend-addresses = 从库地址:3306@2,主库地址:3306@1
- 怎么解决mysql不允许远程连接的错误
- 关于mysql不能成功建立连接10038错误与没有mysql服务
- [原创]Delphi通过MyODBC连接MySql时出现“灾难性故障”的解决方法
- 怎么解决mysql不允许远程连接的错误
- Centos6.7下安装python连接mysql环境故障解决
- 怎么解决mysql不允许远程连接的错误
- 解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。
- 远程连接Ubuntu服务器的mysql出现没有权限错误的解决办法
- 怎么解决mysql不允许远程连接的错误
- tomcat与mysql连接隔段时间没有访问总是自动断开解决方法
- 怎么解决mysql不允许远程连接的错误
- 始终“正在连接”的无线故障解决方法
- 解决没有安装Qt 的mysql sql驱动插件情况下不能连接数据库的问题
- 连接Mysql提示“找不到请求的 .Net Framework Data Provider。可能没有安装。”解决方法
- 怎么解决mysql不允许远程连接的错误1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server“
- Ubunt下安装mysql及遇到的问题(怎么解决mysql远程连接报10038的错误)
- 连接PHPmyadmin是出现#2003 – 服务器没有响应 MySQL 无法启动的解决办法
- mysql1130远程连接没有权限的解决方法
- 怎么解决mysql不允许远程连接的错误
- 解决MySQL“由于连接方在一段时间后没有正确答复或连接的主机没有反应”的问题