我今天刚刚遇到 MySQL 达到其数据库连接容量的问题。
我收到的错误是,Error establishing a database connection
.当我尝试访问 时/phpma
,我收到此错误:phpMyAdmin - Error #1040 - Too many connections
。
我已经研究过如何进行更改my.cnf
以增加连接数量,但我想我已经这样做了一段时间,并且从那以后没有出现任何问题。因此,我有点担心这些连接存在某种漏洞。
我运行的是 CentOS。有没有简单的方法来检查这些连接?有什么我应该注意的吗,或者可能只是一种剔除活动时间过长的连接的方法(MySQL 是否也这样工作?)。
答案1
要从 Linux 中查看 mysql 中正在运行哪些线程:
root@myserver:~> mysqladmin processlist
与之等效的 mysql 查询是:
root@myserver:~> mysql
mysql> SHOW FULL PROCESSLIST\G
另外,请查看检查线程信息查看输出的含义。最为显着地:
命令和状态指示线程正在做什么。
大多数状态对应于非常快速的操作。如果线程保持给定状态很多秒,则可能存在需要调查的问题。
要点是查看 mysql 进程列表,并根据您的环境性质(例如长时间运行的进程或大量进程)查看是否有任何可疑的内容。
答案2
使用此命令并列出正在运行的 mysql 应用程序,
ps -aux | grep 'mysql'
然后,在默认端口“3306”启动所需的mysql