1.查看连接数配置(MySQL服务器允许的最大连接数16384)show variables like’%max_connections%’;2.查看当前连接数。方法1:show full processlist (需要用管理员帐号)。方法2:mysqladmin -u root -proot status(Threads 值是当前连接数)。
一、mysql怎么查看连接池是否已满
1.查看连接数配置(MySQL服务器允许的最大连接数16384)
show variables like ‘%max_connections%’
2.查看当前连接数
方法1:show full processlist (需要用管理员帐号)
方法2:mysqladmin -u root -proot status(Threads 值是当前连接数)
如果当前连接数和连接数配置接近,说明连接数差不多满了。
使用 MySQL 数据库的站点,当访问连接数过多时,就会出现 “Too many connections” 的错误。出现这种错误有两种情况,一种是网站访问量实在太大,服务器已经负担不起,此时就应该考虑负载均衡或者其它减少服务器压力的办法。另一种情况就是 MySQL 的连接池大连接数设置得太小,当访问量稍大就出现连接过多的错误。win7下配置PHP+Apache+Mysql运行环境
MySQL 默认的连接池大连接数为 100,可以在 mysql 客户端使用以下命令查看
mysql> show variables like ‘max_connections’;
此命令将得到类似以下的输出结果:
+—————–+——-+
| Variable_name | Value |
+—————–+——-+
| max_connections | 2000 |
+—————–+——-+
1 row in set (0.00 sec)
要对 mysql 的连接池大连接数进行修改,只需要在 my.cnf 配置文件里面修改 max_connections 的值,然后重启 mysql 就行。如果 my.ini 文件中没有找到 max_connections 条目,可自行添加以下条目
max_connections = 200
修改MySQL连接池大连接数
方法一:
进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MySQL即可
方法二:
MySQL连接池大连接数默认是100客户端登录:
MySQL -uusername -ppassword
设置新的MySQL连接池大连接数为200:
MySQL> set GLOBAL max_connections=200
显示当前运行的Query:
MySQL> show processlist
显示当前状态:
MySQL> show status
退出客户端:MySQL> exit
查看当前MySQL连接池大连接数:MySQLadmin -uusername -ppassword variables
方法三:
以centos 4.4 下面的MySQL 5.0.33 手工编译版本为例说明:
vi /usr/local/MySQL/bin/MySQLd_SAFe
找到SAFe_MySQLd编辑它,找到MySQLd启动的那两行,在后面加上参数 :
-O max_connections=1500
具体一点就是下面的位置:
then $NOHUP_NICENESS $ledir/$MySQLD
延伸阅读:
二、undo log的工作原理
在更新数据之前,MySQL会提前生成undo log日志,当事务提交的时候,并不会立即删除undo log,因为后面可能需要进行回滚操作,要执行回滚(rollback)操作时,从缓存中读取数据。undo log日志的删除是通过通过后台purge线程进行回收处理的。
1、事务A执行update操作,此时事务还没提交,会将数据进行备份到对应的undo buffer,然后由undo buffer持久化到磁盘中的undo log文件中,此时undo log保存了未提交之前的操作日志,接着将操作的数据,也就是Teacher表的数据持久保存到InnoDB的数据文件IBD。
2、此时事务B进行查询操作,直接从undo buffer缓存中进行读取,这时事务A还没提交事务,如果要回滚(rollback)事务,是不读磁盘的,先直接从undo buffer缓存读取。