连接不上的原因如下:
1.连接数超过了mysql默认的连接数
2.错误连接太多,等待时间过长,导致很多连接未关闭
解决方案:
增大最大连接数(不推荐)
1.临时调整最大连接数量,该方法是不需要重启的
set GLOBAL max_connections = 300;
2.修改mysql配置文件最大连接数,默认位置:/etc/mysql/mysql.conf.d/mysqld.cnf。 修改max_connections的值
修改连接等待时间(推荐)
1.临时变更连接超时时间(无需重启)
SET GLOBAL interactive_timeout = 60;
SET GLOBAL wait_timeout = 60;
2.在配置文件中修改超时时间(需重启 MySQL 生效) 打开MySQL配置文件,默认位置/etc/mysql/mysql.conf.d/mysqld.cnf,修改对应的参数
[mysqld]
interactive_timeout=60
wait_timeout=60
查看当前配置的最大连接数
mysql> show variables like '%max_connections%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| max_connections | 151 |
| mysqlx_max_connections | 100 |
+------------------------+-------+
2 rows in set (0.01 sec)
查看当前 MySQL 连接情况
SHOW PROCESSLIST; #查看前 100 条连接
SHOW full PROCESSLIST; #查看所有连接
查看当前连接数
mysql> show status like 'Threads%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 0 |
| Threads_connected | 114 |
| Threads_created | 286 |
| Threads_running | 2 |
+-------------------+-------+
4 rows in set (0.01 sec)