记录一次公司发生的测服数据库(Ubuntu系统)连接不上的问题,让我们跟随大佬的解决步骤去思考一些问题。
Q1:解决步骤
- 使用命令行连接Mysql
- 分析Mysql给出的告警或错误信息、登录服务器查询mysql的错误日志
- 定位排查问题,是数据库重启后的连接数不够,导致重启后,数据库连接数全被Java服务占用,导致开发+测试人员不可使用
- 修改数据库的连接数,并以mysqld_safe启动方式,问题解决。
mysql -h192.xx.xx.xx -uxx -pxxx #连接mysql


show global variables like '%conn%' # 查询数据连接数

show full processlist; # 查看到所有的连接数「省略截图」
ubuntu系统的一些限制。 使用service 启动,默认配置是5000但是被限制为214了(用service是启动默认配置文件了)
Q2:数据库的配置文件?
配置文件的加载顺序:
1. /etc/my.cnf
2. /etc/mysql/my.cnf
3. ~/.my.cnf
Q3:Java 连接池?
- 原因:传统方式创建和销毁连接都需要消耗系统资源
- 方案:连接池正是为了解决资源的频繁分配or释放所造成的问题。为解决上述问题,数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。
当很多的Java服务设置的连接池的数量过大后,就很容易占用太多的资源。导致上述出现的问题,针对测服环境可以将连接池的最小连接数适当调小。
网友评论