关于MYSQL并发连接不上的难题,请达人指教

时间:2021-08-05 14:47:34
我使用采集软件用4台电脑发帖,在发帖的时候,我刷新查看页面经常出现连接不上MYSQL
配置环境是WINDOWS,CPU和内存都还有很多的剩余,另外my.ini的max_connections也调到了很大1000
为什么会出现连接不上的问题?请问怎么解决?

8 个解决方案

#1


看看mysql的错误日志

#2


错误提示是什么?

#3


连接不上MYSQL 不过刷新一下就可以了

#4


引用 1 楼 rucypli 的回复:
看看mysql的错误日志
哦,没有开日志,怎么办?

#5


错误日志不需要开的。也不可能关掉。

引用
5.11.1. 错误日志
错误日志文件包含了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。

如果mysqld莫名其妙地死掉并且mysqld_safe需要重新启动它,mysqld_safe在错误日志中写入一条restarted mysqld消息。如果mysqld注意到需要自动检查或着修复一个表,则错误日志中写入一条消息。

在一些操作系统中,如果mysqld死掉,错误日志包含堆栈跟踪信息。跟踪信息可以用来确定mysqld死掉的地方。参见E.1.4节,“使用堆栈跟踪”。

可以用--log-error[=file_name]选项来指定mysqld保存错误日志文件的位置。如果没有给定file_name值,mysqld使用错误日志名host_name.err 并在数据目录中写入日志文件。如果你执行FLUSH LOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件。(如果未给出--log-error选项,则不会重新命名)。

如果不指定--log-error,或者(在Windows中)如果你使用--console选项,错误被写入标准错误输出stderr。通常标准输出为你的终端。

在Windows中,如果未给出--console选项,错误输出总是写入.err文件。

#6


引用 5 楼 acmain_chm 的回复:
错误日志不需要开的。也不可能关掉。

引用
5.11.1. 错误日志
错误日志文件包含了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。

如果mysqld莫名其妙地死掉并且mysqld_safe需要重新启动它,mysqld_safe在错误日志中写入一条restarted mysqld消息。如果mysqld注意到需要自动检查或着修复一个表,则错误日志中……
恩,那.err文件没有什么错误

程序报错,连接不上,引起的原因是4台电脑同时批量发帖子造成的,所以怎么配置配置文件可以解决这个问题,APACHE还是MYSQL的,网上的my.ini
<IfModule mpm_winnt_module>
    ThreadsPerChild      15000
    MaxRequestsPerChild    10000
</IfModule>这个线程是足够多了

所以我觉得是mysql的问题,不知道如何修改

#7


先贴出你MYSQL错误日志中的最后的信息以供分析。

#8


修改了back_log的大小就行了
谢谢大家

back_log :   要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这个参数就会起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。   back_log 值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它

#1


看看mysql的错误日志

#2


错误提示是什么?

#3


连接不上MYSQL 不过刷新一下就可以了

#4


引用 1 楼 rucypli 的回复:
看看mysql的错误日志
哦,没有开日志,怎么办?

#5


错误日志不需要开的。也不可能关掉。

引用
5.11.1. 错误日志
错误日志文件包含了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。

如果mysqld莫名其妙地死掉并且mysqld_safe需要重新启动它,mysqld_safe在错误日志中写入一条restarted mysqld消息。如果mysqld注意到需要自动检查或着修复一个表,则错误日志中写入一条消息。

在一些操作系统中,如果mysqld死掉,错误日志包含堆栈跟踪信息。跟踪信息可以用来确定mysqld死掉的地方。参见E.1.4节,“使用堆栈跟踪”。

可以用--log-error[=file_name]选项来指定mysqld保存错误日志文件的位置。如果没有给定file_name值,mysqld使用错误日志名host_name.err 并在数据目录中写入日志文件。如果你执行FLUSH LOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件。(如果未给出--log-error选项,则不会重新命名)。

如果不指定--log-error,或者(在Windows中)如果你使用--console选项,错误被写入标准错误输出stderr。通常标准输出为你的终端。

在Windows中,如果未给出--console选项,错误输出总是写入.err文件。

#6


引用 5 楼 acmain_chm 的回复:
错误日志不需要开的。也不可能关掉。

引用
5.11.1. 错误日志
错误日志文件包含了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。

如果mysqld莫名其妙地死掉并且mysqld_safe需要重新启动它,mysqld_safe在错误日志中写入一条restarted mysqld消息。如果mysqld注意到需要自动检查或着修复一个表,则错误日志中……
恩,那.err文件没有什么错误

程序报错,连接不上,引起的原因是4台电脑同时批量发帖子造成的,所以怎么配置配置文件可以解决这个问题,APACHE还是MYSQL的,网上的my.ini
<IfModule mpm_winnt_module>
    ThreadsPerChild      15000
    MaxRequestsPerChild    10000
</IfModule>这个线程是足够多了

所以我觉得是mysql的问题,不知道如何修改

#7


先贴出你MYSQL错误日志中的最后的信息以供分析。

#8


修改了back_log的大小就行了
谢谢大家

back_log :   要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这个参数就会起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。   back_log 值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它