mysql最大连接数、更改连接数

来源:互联网 发布:中小企业erp软件 编辑:程序博客网 时间:2024/06/05 09:13

mysql最大连接数(最大并发数)默认为100,这个数值对应并发很多的数据库远远不够,尤其电商行业,当连接请求大于默认连接数后,就会出现无法连接数据库的错误,因此可以把它适当调大些


linux服务器中,改my.cnf中的值

my.cnf 中找到段 [mysqld],在其中添加一行

max_connections=200  //改成你想要的值

注意:这里有人说改成set-variables=max_connections=200,但我用这种方式mysql服务起不来,修改了下边那7种可能的原因还是不行。


注意:这里修改了my.cnf可能导致mysql服务起不来

网上说的原因有这几种

1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
解决方法 :给予权限,执行 “chown-R mysql:mysql/var/data” “chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld!

2.可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld!

3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !http://blog.rekfan.com/?p=186

4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

5.skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

6.错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限

7.selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。


重启mysql服务

service mysqld restart


查看

mysqld -uroot -p variables | grep max_connections

输入root账号的密码可以看见

| max_connections | 200 |

或者

mysql -uroot -p

输入root账号的密码,执行show variables like 'max_connections'


请人说mysql最大连接数也就4000

mysqld实际上允许max_connections+1个客户端进行连接。额外的连接保留给具有SUPER权限的账户。通过为系统管理员而不是普通用户授予SUPER权限(普通用户不应具有该权限),系统管理员能够连接到服务器,并使用SHOW PROCESSLIST来诊断问题,即使已连接的无特权客户端数已达到最大值也同样。请参见13.5.4.16节,“SHOW PROCESSLIST语法”。

MySQL能支持的最大连接数取决于给定平台上线程库的质量。LinuxSolaris应能支持500-1000个并发连接,具体情况取决于RAM容量,以及客户端正在作什么。MySQL AB提供的静态Linux库能支持高达4000个连接。


0 0