问题:Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
原因:
1.首先定位了问题,是由于访问量太大,导致数据库连接数不够,问题出现在数据库上
2.查找解决方案修改mysql的配置文件my.cnf,调整最大连接数max_connections
解决方案:
一、方案一
修改mysql配置文件my.cnf,在[mysqld]段中添加或修改max_connections值:
max_connections=2000
1.切换到my.cnf所在文件夹
cd /etc/mysql/
2.查看该文件夹下的文件
ls
3. 打开my.cnf文件
sudo vi my.cnf
4.在[mysqld]段中添加
max_connections=2000
5.重启mysql服务
sudo service mysql restart
二、方案二(重启mysql服务后失效)
进入MySQL控制台,通过命令修改max_connections
1.进入MySQL控制台
mysql -uroot -proot
2.查看MySQL当前允许的最大连接数
show variables like '%max_connections%';
3.修改最大连接数
set GLOBAL max_connections=2000;
4.通过命令再次查看当前的最大连接数,检查是否生效
备注
一些常用的mysql状态命令参数
mysql> show status like 'Threads%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 58 |
| Threads_connected | 57 | ###这个数值指的是打开的连接数
| Threads_created | 3676 |
| Threads_running | 4 | ###这个数值指的是激活的连接数,这个数值一般远低于connected数值
+-------------------+-------+
mysql> show status like '%Max_used_connections%';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 30 |
+----------------------+-------+
1 row in set (0.00 sec)
Max_used_connections 同时使用的连接的最大数目。
Threads_connected 当前打开的连接的数量。
Threads_running 不在睡眠的线程数量。