我是新来的,但是从这个网站获得了好处。 我正在计划大型的php / mysql网站,但是对于mysql并发连接限制感到困惑。 是每个mysql数据库的限制还是每个localhost / cpanel帐户的限制? 如果它限制每个mysql数据库。因此,如果每个最终用户都有一个专用的mysql数据库,那么例如每1000个最终用户就有1000个数据库,但我只有1个mysql用户可以访问所有1000个数据库。可以吗? 如果它限制每个mysql用户。池连接可以解决这种情况吗?
答案 0 :(得分:5)
有两个系统变量来控制它们。如the manual中所述:
+----------------------+-----------------------+ | Command-Line Format | --max_connections=# | +----------------------+-----------------------+ | Option-File Format | max_connections | +----------------------+-----------------------+ | Option Sets Variable | Yes, max_connections | +----------------------+-----------------------+ | Variable Name | max_connections | +----------------------+-----------------------+ | Variable Scope | Global | +----------------------+-----------------------+ | Dynamic Variable | Yes | +----------------------+-----------------------+ | | Permitted Values | + +---------+-------------+ | | Type | numeric | + +---------+-------------+ | | Default | 151 | + +---------+-------------+ | | Range | 1 .. 100000 | +----------------------+-----------------------+允许的最大同时客户端连接数。默认情况下,这是151.有关详细信息,请参阅Section C.5.2.7, “
Too many connections
”。增加此值会增加
mysqld
所需的文件描述符数。有关文件描述符限制的注释,请参阅Section 8.4.3.1, “How MySQL Opens and Closes Tables”。 +----------------------+---------------------------+ | Command-Line Format | --max_user_connections=# | +----------------------+---------------------------+ | Option-File Format | max_user_connections | +----------------------+---------------------------+ | Option Sets Variable | Yes, max_user_connections | +----------------------+---------------------------+ | Variable Name | max_user_connections | +----------------------+---------------------------+ | Variable Scope | Global, Session | +----------------------+---------------------------+ | Dynamic Variable | Yes | +----------------------+---------------------------+ | | Permitted Values | + +---------+-----------------+ | | Type | numeric | + +---------+-----------------+ | | Default | 0 | + +---------+-----------------+ | | Range | 0 .. 4294967295 | +----------------------+---------------------------+允许任何给定MySQL用户帐户的最大并发连接数。值0(默认值)表示“无限制”。
此变量具有可在服务器启动或运行时设置的全局值。它还具有只读会话值,该值指示适用于与当前会话关联的帐户的有效同时连接限制。会话值初始化如下:
如果用户帐户的资源限制为非零
MAX_USER_CONNECTIONS
,则会话max_user_connections值将设置为该限制。否则,会话max_user_connections值将设置为全局值。
使用
GRANT
语句指定帐户资源限制。请参阅Section 6.3.4, “Setting Account Resource Limits”和Section 13.7.1.3, “GRANT
Syntax”。
答案 1 :(得分:1)
那太疯狂了。每个用户不能拥有1个数据库。这是一个过度杀戮。 (如果您不是托管服务提供商)
无论如何,MySQL建议每台机器不要超过 4096个并发请求。如果你有4096个并发请求,我相信你会遇到许多其他问题而不是数据库。