[故障解决]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 = 从库地址:[email protected],主库地址:[email protected]
时间: 2024-10-27 13:04:11

[故障解决]Mysql-Atlas从库始终没有建立连接怎么办?的相关文章

[故障解决]Mysql爆出ERROR 2006 (HY000): MySQL server has gone away的错误怎么办?

有时候,mysql会爆出MySQL server has gone away,比如像这样: 目前我遇到的这样的情况有三种解决方法: 1)需要添加白名单,这种情况在云服务器上比较常见.在云商后台里把对应机器添加到rds白名单即可: 2)调整一下服务器的时间,一般来说这样的情况在虚拟机上常见,检查一下虚拟机时间是否与宿主机时间不同,如果不同,请#yum -y -q install ntp,然后#ntpdate -b  time5.aliyun.co. 3)导入一个比较大的sql文件也会出现这样的错误

[故障解决]Mysql爆出ERROR 1044 (42000)的错误怎么办?

情况如图,使用dvlopenhls可以登陆到这个host,并且可以查看里面的tables,但是使用tables其中的op_flow就会报错,查看了很多地方,有人说要改密码,有人说要grant给权限.五花八门,乱七八糟. 其实这个问题很蛋疼,因为op_flow下面已经不是一个tables所以不能继续use.说白了这是一个语句错误,但是mysql竟然用access deny来反馈,的确是一个bug. 这样就好了. 不过如果是create表格出现了access deny,还是要检查一下grant权限的

解决mysql 8 安装后命令行可以连接,navicat不能连接的问题

错误代码: client does not support authentication 解决办法: 1 使用命令行进入数据库 2 选着数据库  mysql   --> user mysql 3 alter user 'root'@'localhost' identified with mysql_native_password by '123456'; 4 flush privileges; 这样就可以连接了 原文地址:https://www.cnblogs.com/cxygg/p/92917

Atlas几种常见故障解决(不定期更新)

1)使用atlas却发现"读库闲置,框架还是去主库读写数据" 配置完atlas之后,发现使用jdbc框架的话,读库和写库各司其职,但是使用mybatis框架之后,就发现框架的读写都去了主库,把读库放置一边,那么这种情况是因为"有事务存在的话,atlas就会强制走主库",遇到这种情况就检查一下是否有事务的存在,比如@Transactional,如果要解决的话,就加上"@Transactional(propagation=Propagation.NOT_SUP

Slave_SQL_Running: No mysql同步故障解决方法

Slave_SQL_Running: No mysql同步故障解决 今天检查数据库发现一台MySQL Slave未和主机同步,查看Slave状态:mysql> show slave status\GSlave_IO_Running: YesSlave_SQL_Running: NoLast_Errno: 1062....Seconds_Behind_Master:NULL原因:1.程序可能在slave上进行了写操作 2.也可能是slave机器重起后,事务回滚造成的. 解决办法I:1.首先停掉Sl

Mysql DBA 高级运维学习笔记-MySQL主从复制故障解决

1.MySQL从库数据冲突导致同步停止 Show slave status报错且show slave status\G Slave_IO_Running: Yes Slave_SQL_Running: NO Seconds_Behind_Master: NULL Last_Error:Error 'Can't create database 'linzhongniao';database exists'on query. Default database:'linzhongniao'.Query

解决Mysql占用cpu,内存高故障案例

故障: 晚上大概7点钟左右,收到播放中心投诉,说视频播放很慢,加载很久不出来.一开始,哥以为是tomcat服务又挂了.所以到tomcat服务器上查看下catalina.out输出日志.却没发现任务错误信息. 分析: 想了想,视频加载慢,会不会是数据库问题呢?果断上mysql数据库(从库)看下top如下:   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND    37258 mysql    20   0 17.

mysql的三个故障解决小结

mysql使用过程中经常会遇到的三个故障,在此小结一下. 1.MySQl服务无法启动 我们在使用mysql的过程中,常会遇到MySQl服务无法启动,具体报错信息:Starting MySQL ERROR.The server quit without updating PID file (/[FAILED]l/mysql/) 对这样的错误,网上的分析解释有很多,有人分析把skip-federated这个参数屏蔽就可以了,也有人认为删除mysql-bin.index这个文件就可以启动服务.或者检查

mysql 主从同步故障解决   Error 'Row size too large (> 8126).

错误日志:  Error 'Row size too large (> 8126). Changing some columns to TEXT or BLOB   or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row   format, BLOB prefix of 768 bytes is stored inline.' on query. Default   database: 'XXXX