修改MySQL连接数与MySQL连接数超限原因分析
2011-03-29 10:44
330 查看
一、MySQL连接数超标原因分析
MySQL的默认最大连接数为100(N),实际给普通用户使用只有N-1个,保留一个连接是留给超级管理员使用的,防止连接占满了不会把管理员也踢出来。很多网站在运行的时候都会出现连接数受限现象,十之八九并非是网站的真实访问量太大导致连接数超标,更多是因为我们在设计网站程序的时候采用了不合理的设计架构或数据结构引起的。非正常连接超限可能原因如下:
1、类似人数、在线时间、浏览数等统计功能与主程序数据库同属一个数据空间时就很容易出现
2、复杂的动态页尤其是用户每次浏览都涉及到多数据库或多表操作时候也很容易出现
3、还有就是程序设计的不合理(比如复杂运算、等待等操作放置在数据库交互行为中间进行),或者程序存在释放BUG。
4、计算机硬件配置太低确安装太高版、太高配置的MySQL
5、未采用缓存技术
6、数据库未经过优化或表格设计及其复杂
等等一些原因,都会延长数据库的数据交互时间或增加交互次数。所以,如果大家遇到这类问题,首先要考虑程序是否存在BUG导致连接释放失败,再次就是考虑优化软硬件。当然修改MySQL连接数也是软件优化的操作方法之一,希望网友都能够本着学习的态度通过研究一下自身的原因从而解决这一问题。如果实在是找不到原因,那就只好先修改连接数,暂缓定位真实原因了。
二、怎样修改MySQL的最大连接数
1、使用内存变量修改法修改MySQL的最大连接数
步骤如下(同时适用Windows和Linux平台):
A、客户端登录MySQL,输入用户名和密码
B、在MYSQL命令提示符下设置新的最大连接数为500:mysql> set GLOBAL max_connections=500
C、显示当前运行的Query:mysql> show processlist
D、显示当前MYSQL
系统参数状态:mysql> show status
E、退出客户端:mysql>
exit
查看当前最大连接数只需要通过在mysqladmin所在目录下执行以下命令:mysqladmin -username -password variables |find "max_con" 即可看到。也可以使用PHPMyadmin里头的MYSQL参数列表查看最大连接数。
缺点:重启计算机或者MySQL后最大连接数又会复位成初始值,需要重新设定。
2、修改my.ini或my.cnf文件法(需要重启MySQL),可参考同目录下MySQL的配置模板(小内存、大内存、超大内存)
Windows系统下:
打开my.ini文件找到set-variable =max_connections=100这一行,改成需要设定的最大连接数,然后重启即可。
Linux控制台下:
打开my.cnf文件:vi /etc/my.cnf
在[mysqld]段下修改max_connections的值为设定值。
天缘注:可能大家安装的MYSQL来源和版本不同(Windows下MySQL+IIS和PHP+Apache+MySQL套件最终安装结果几乎都不相同),my.ini文件的路径可能有些不同,my.ini可能还会保留一份在C:/Windows目录下需要同时修改。
三、补充几个常用的MYSQL命令
Windows 下:
1、启动MySQL服务:net start mysql
2、停止MySQL服务:net stop mysql
3、重启MySQL服务:net restart mysql
Linux下:
1、Linux系统下启动MySQL的命令:
mysqladmin start
/ect/init.d/mysql start (前面为mysql的安装路径)
2、linux下重启MySQL的命令:
mysqladmin restart
/ect/init.d/mysql restart (前面为mysql的安装路径)
3、linux下关闭MySQL的命令:
mysqladmin shutdown
/ect/init.d/mysql
shutdown (前面为mysql的安装路径)
Windows/Linux公用:
4、手动运行登录MYSQL(如果是超级后台直接输入密码即可)
mysql -u root -p,然后再输入密码即可。
5、登录远程MYSQL:mysql -h xxx.xxx.xxx.xxx -u root -p password,中间的xxx为IP地址
6、显示数据库:mysql>show
databases;
7、显示数据表:mysql>show
tables;
8、切换数据表xxx:mysql>use xxx;
9、退出MySQL:mysql>exit
10、新建MySQL数据库:mysql>create database 库名;
11、新建数据表
mysql>use 库名;
mysql>create table 表名 (字段设定列表);
12、删除数据库或数据表
mysql> drop database 库名;
mysql>drop table 表名;
13、将表中记录清空:delete from 表名;
MySQL的默认最大连接数为100(N),实际给普通用户使用只有N-1个,保留一个连接是留给超级管理员使用的,防止连接占满了不会把管理员也踢出来。很多网站在运行的时候都会出现连接数受限现象,十之八九并非是网站的真实访问量太大导致连接数超标,更多是因为我们在设计网站程序的时候采用了不合理的设计架构或数据结构引起的。非正常连接超限可能原因如下:
1、类似人数、在线时间、浏览数等统计功能与主程序数据库同属一个数据空间时就很容易出现
2、复杂的动态页尤其是用户每次浏览都涉及到多数据库或多表操作时候也很容易出现
3、还有就是程序设计的不合理(比如复杂运算、等待等操作放置在数据库交互行为中间进行),或者程序存在释放BUG。
4、计算机硬件配置太低确安装太高版、太高配置的MySQL
5、未采用缓存技术
6、数据库未经过优化或表格设计及其复杂
等等一些原因,都会延长数据库的数据交互时间或增加交互次数。所以,如果大家遇到这类问题,首先要考虑程序是否存在BUG导致连接释放失败,再次就是考虑优化软硬件。当然修改MySQL连接数也是软件优化的操作方法之一,希望网友都能够本着学习的态度通过研究一下自身的原因从而解决这一问题。如果实在是找不到原因,那就只好先修改连接数,暂缓定位真实原因了。
二、怎样修改MySQL的最大连接数
1、使用内存变量修改法修改MySQL的最大连接数
步骤如下(同时适用Windows和Linux平台):
A、客户端登录MySQL,输入用户名和密码
B、在MYSQL命令提示符下设置新的最大连接数为500:mysql> set GLOBAL max_connections=500
C、显示当前运行的Query:mysql> show processlist
D、显示当前MYSQL
系统参数状态:mysql> show status
E、退出客户端:mysql>
exit
查看当前最大连接数只需要通过在mysqladmin所在目录下执行以下命令:mysqladmin -username -password variables |find "max_con" 即可看到。也可以使用PHPMyadmin里头的MYSQL参数列表查看最大连接数。
缺点:重启计算机或者MySQL后最大连接数又会复位成初始值,需要重新设定。
2、修改my.ini或my.cnf文件法(需要重启MySQL),可参考同目录下MySQL的配置模板(小内存、大内存、超大内存)
Windows系统下:
打开my.ini文件找到set-variable =max_connections=100这一行,改成需要设定的最大连接数,然后重启即可。
Linux控制台下:
打开my.cnf文件:vi /etc/my.cnf
在[mysqld]段下修改max_connections的值为设定值。
天缘注:可能大家安装的MYSQL来源和版本不同(Windows下MySQL+IIS和PHP+Apache+MySQL套件最终安装结果几乎都不相同),my.ini文件的路径可能有些不同,my.ini可能还会保留一份在C:/Windows目录下需要同时修改。
三、补充几个常用的MYSQL命令
Windows 下:
1、启动MySQL服务:net start mysql
2、停止MySQL服务:net stop mysql
3、重启MySQL服务:net restart mysql
Linux下:
1、Linux系统下启动MySQL的命令:
mysqladmin start
/ect/init.d/mysql start (前面为mysql的安装路径)
2、linux下重启MySQL的命令:
mysqladmin restart
/ect/init.d/mysql restart (前面为mysql的安装路径)
3、linux下关闭MySQL的命令:
mysqladmin shutdown
/ect/init.d/mysql
shutdown (前面为mysql的安装路径)
Windows/Linux公用:
4、手动运行登录MYSQL(如果是超级后台直接输入密码即可)
mysql -u root -p,然后再输入密码即可。
5、登录远程MYSQL:mysql -h xxx.xxx.xxx.xxx -u root -p password,中间的xxx为IP地址
6、显示数据库:mysql>show
databases;
7、显示数据表:mysql>show
tables;
8、切换数据表xxx:mysql>use xxx;
9、退出MySQL:mysql>exit
10、新建MySQL数据库:mysql>create database 库名;
11、新建数据表
mysql>use 库名;
mysql>create table 表名 (字段设定列表);
12、删除数据库或数据表
mysql> drop database 库名;
mysql>drop table 表名;
13、将表中记录清空:delete from 表名;
相关文章推荐
- mysql 连接数较大时提示连接不成功 修改mysql最大连接数
- 【MySql】mysql无法建立连接或建立连接失败原因分析
- mac 修改mysql 密码, navicat 连接失败原因
- 修改freeradius与mysql连接时的最大连接数
- MySQL This function has none of DETERMINISTIC, NO SQL...错误原因分析及解决方法
- linux(ubuntu)下成功修改MYSQL默认连接数
- MySQL 5.7.16 修改密码提示 ERROR 1054 (42S22): Unknown column ''password'' in ''field list''的原因
- mysql(2)—— 由笛卡尔积现象分析数据库表的连接
- mysql 修改sql_mode 实现字符串管道‘||’连接
- 瞬发大量并发连接 造成MySQL连接不响应的分析
- mysql连接不上 mysqlfront连接不上的真正原因
- 查看和修改 MySQL 的最大连接数
- MYSQL数据表损坏的原因分析和修复方法小结(推荐)
- MySQL查看最大连接数和修改最大连接数
- Thrift 连接出现 Connection reset by pear原因分析
- Linux修改MySQL下root权限来允许远程连接
- VC远程连接MYSQL失败原因收集:mysql_real_connect()
- 怎么查看和修改 MySQL 的最大连接数?
- mysql服务器查询慢原因分析方法
- Mysql连接数过大导致连接超时的问题