一、Mysql最大连接数查问

1、查看以后连接数

查看以后连接数./mysqladmin -uroot -p1234.com statusUptime: 1370150  Threads: 1 (以后连接数) Questions: 79  Slow queries: 0  Opens: 33  Flush tables: 1  Open tables: 26  Queries per second avg: 0.000
./mysql -uroot -p1234.com -e 'show status' | grep -i  Threads Delayed_insert_threads    0Slow_launch_threads    0Threads_cached    1Threads_connected    1Threads_created    2Threads_running    1 ##(以后连接数)
mysql> show status like 'Threads%';+-------------------+-------+| Variable_name    | Value |+-------------------+-------+| Threads_cached    | 1    || Threads_connected | 1    || Threads_created  | 2    || Threads_running  | 1    |   ###以后连接数+-------------------+-------+4 rows in set (0.00 sec)

2、查看最大连接数

[root@xxx bin]# ./mysql -uroot -p1234.com -e 'show variables' | grep max_connectionsmax_connections    500
mysql> show global variables like 'max_conn%';+--------------------+-------+| Variable_name      | Value |+--------------------+-------+| max_connect_errors | 10    || max_connections    | 500  |## 最大连接数+--------------------+-------+2 rows in set (0.00 sec)

3、查看曾经用的连接数

mysql> show global status like 'Max_used_connections';+----------------------+-------+| Variable_name        | Value |+----------------------+-------+| Max_used_connections | 152     |+----------------------+-------+1 row in set (0.04 sec)————————————————

二、计划

想尽一切办法不重启

这种状况个别是进不去数据库了,批改配置文件得重启,对于线上的数据库危险太大了,进入数据库用sql批改,当初是进不去了

办法1

应用gdb工具 不必进入数据库,不必重启数据库 办法如下:

[root@xxx bin]# gdb -p $(cat /data/mydata/xxx.pid) -ex "set max_connections=500" -batch  [New LWP 7667][New LWP 4816][New LWP 341][New LWP 338][New LWP 337][New LWP 336][New LWP 335][New LWP 331][New LWP 330][New LWP 329][New LWP 328][New LWP 327][New LWP 326][New LWP 325][New LWP 324][New LWP 323][New LWP 322][Thread debugging using libthread_db enabled]0x00000035654df1b3 in poll () from /lib64/libc.so.6

查看mysql pid地位的办法

在配置文件 my.cnf里查找
用 ps -ef | grep mysql 查找

mysql> show variables like '%pid%';+---------------+----------------------+| Variable_name | Value                |+---------------+----------------------+| pid_file      | /data/mydata/xxx.pid |+---------------+----------------------+1 row in set (0.00 sec)

批改结束后 ,尝试从新进入数据库,并查看链接数
这种办法设置后,只是临时的,数据库重启后,会变为原来的数值,要想永恒,设置完后批改配置文件my.cnf

办法2

前提是还能够进入数据库
进入数据库

设置新的最大连接数为200:mysql> set GLOBAL max_connections=200显示以后运行的Query:mysql> show processlist显示以后状态:mysql> show status退出客户端:mysql> exit

这种办法设置后,只是临时的,数据库重启后,会变为原来的数值,要想永恒,设置完后批改配置文件my.cnf

办法3

须要重启数据库
批改 my.conf
max_connection = 1000;

办法4

三、模仿连接数过多

#!/bin/bashset j=2while true do        let "j=j+1"/usr/local/mysql/bin/mysqlslap -a -c 500 -i 10 -uroot -p1234.comdone

参考:
1)https://www.cnblogs.com/lazyt...
2)