首页 > 数据库 > MySQL > 正文

解决mysql 1040错误Too many connections的方法

2024-07-24 12:49:05
字体:
来源:转载
供稿:网友
从官方文档知道linux上面编译安装的mysql默认的连接为100个,这样对于网站的需求来说是远远不够的。
mysql官方告诉我们需要修改max_connections的值,那么我们怎么去修改呢?有两种方法

1、修改配置文件文件

修改/etc/my.cnf这个文件,在[mysqld]中新增max_connections=N,如果你没有这个文件请从编译源码中的support-files文件夹中复制你所需要的*.cnf文件为到/etc/my.cnf。我使用的是my-medium.cnf,中型服务器配置。例如我的[mysqld]的内容如下
复制代码 代码如下:

[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 160M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
max_connections=1000

由于对mysql还不是很熟悉,所以很多参数没有修改。哈哈。。

2、非使用mysqld脚本自动启动的用户。

修改$MYSQL_HOME/bin/mysqld_safe文件
例如:/usr/local/mysql/bin/mysqld_safe这个文件
grep -n 'max_connection' $MYSQL_HOME/bin/mysqld_safe
修改对应行号的max_connections参数值
以上方法为参考网上的做法写的。

方法二:

在PHP手册里面找关于mysql_connect和mysql_pconnect的资料,下面是在php手册中对这两个函数的描述:
mysql_connect 函数原型:
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]])
返回:
如果成功则返回一个MySQL 连接标识,失败则返回FALSE。
描述:
mysql_connect() 建立一个到MySQL 服务器的连接。当没有提供可选参数时使用以下默认值:server = 'localhost:3306',username =
服务器进程所有者的用户名,password = 空密码。
如果用同样的参数第二次调用mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。参数new_link 改变此行为并使
mysql_connect() 总是打开新的连接,甚至当mysql_connect() 曾在前面被用同样的参数调用过。参数client_flags 可以是以下常量的组合
:MYSQL_CLIENT_COMPRESS,MYSQL_CLIENT_IGNORE_SPACE 或者MYSQL_CLIENT_INTERACTIVE。
注: new_link 参数自PHP 4.2.0 起可用。
client_flags 参数自PHP 4.3.0 起可用。
一旦脚本结束,到服务器的连接就会被关闭。除非之前已经调用了mysql_close() 来关闭它。
mysql_pconnect :
函数原型:
resource mysql_pconnect ( [string server [, string username [, string password [, int client_flags]]]])
返回:
如果成功则返回一个正的MySQL 持久连接标识符,出错则返回FALSE。
描述:
mysql_pconnect() 建立一个到MySQL 服务器的连接。如果没有提供可选参数,则使用如下默认值:server = 'localhost:3306',
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表