您的位置:首页 > 数据库 > MySQL

MySQL数据库连接数问题及处理

2013-04-25 16:13 309 查看
参考网站:http://blog.sina.com.cn/s/blog_4ab1768f0100em1t.html

一、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 GLOBALmax_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、inux下重启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 -ppassword,中间的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 表名;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: