如何解决 MySQL max

作者&投稿:蔽晨 (若有异议请与网页底部的电邮联系)
如何解决 MySQL max~

MySQL是目前使用很广泛的数据库,在使用过程中,有时我们会遇到一个与 "max_allowed_packet" 相关的报错,那如何解决这个问题呢? 看如下经验。

方法/步骤

先看看与这个错误相关的后台异常 :
Packet for query is too large (1706 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
一旦数据库出现这个问题,基本执行任何查询语句,后台都会报这个错!(除非查询所得数据量特别少)!
先登录数据库,查看 max_allowed_packet 这个参数值
连接数据库服务器,登录 mysql, 执行命令 :
show variables like '%max_allowed_packate%'
即可查看这个系统参数目前的值 ! 我的系统,目前显示只有 1024 字节,确实太小了!

通过 mysql 命令更改这个值到 100M !
连接数据库服务器,登录 mysql, 执行命令 :
set global max_allowed_packet = 100*1024*1024
退出后,重新登录 mysql ,再次查看这个系统项的值, 注意,必须重新登录mysql,否则这个值还是显示为原始值(缓存)!
修改后,这个配置项显示为 100 M !

修改配置文件--Windows
我们刚才的修改是针对运行环境,但如果我们的配置文件不变,则重启数据库后,这个值又恢复为原始值了,对于 Windows 下的 MySQL,我们需要修改其配置文件 my.ini , 这个文件在 MySQL 的安装根目录下。
注意: MySQL 配置文件分为几个段 (Section), 包括 [mysql], [mysqld], [mysqldump] 等, 我们需要在 [mysqld] 段下添加配置项 :
max_allowed_packet= 100M

修改配置文件--Linux
在 Linux 中,MySQL 对应的配置文件是 my.cnf , 我们在Linux终端输入如下命令 :
mysql --help | grep my.cnf
可以查看 MySQL 所使用的 my.cnf 列表(优先级列表,先找到的配置文件生效),MySQL 会逐个目录寻找这个文件,直到找到为止!
我们逐个目录找到我们系统 MySQL 所使用的 my.cnf 配置文件,找到对应的配置项,修改为 100M 即可。

MySQL Max() 函数是用来找出记录集中最大值的记录。

要理解 Max() 函数,考虑 employee_tbl 表,它是具有以下记录:
mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
| id | name | work_date | daily_typing_pages |
+------+------+------------+--------------------+
| 1 | John | 2007-01-24 | 250 |
| 2 | Ram | 2007-05-27 | 220 |
| 3 | Jack | 2007-05-06 | 170 |
| 3 | Jack | 2007-04-06 | 100 |
| 4 | Jill | 2007-04-06 | 220 |
| 5 | Zara | 2007-06-06 | 300 |
| 5 | Zara | 2007-02-06 | 350 |
+------+------+------------+--------------------+
7 rows in set (0.00 sec)

现在,假设想获取上表中daily_typing_pages的字段的最大值对应的记录, 那么可以简单地使用下面的命令:
mysql> SELECT MAX(daily_typing_pages)
-> FROM employee_tbl;
+-------------------------+
| MAX(daily_typing_pages) |
+-------------------------+
| 350 |
+-------------------------+
1 row in set (0.00 sec)

可以使用GROUP BY子句找到所有记录中最大值对应的名字如下:


mysql> SELECT id, name, MAX(daily_typing_pages)
-> FROM employee_tbl GROUP BY name;
+------+------+-------------------------+
| id | name | MAX(daily_typing_pages) |
+------+------+-------------------------+
| 3 | Jack | 170 |
| 4 | Jill | 220 |
| 1 | John | 250 |
| 2 | Ram | 220 |
| 5 | Zara | 350 |
+------+------+-------------------------+
5 rows in set (0.00 sec)

可以使用 Min() 函数和 Max() 函数一起,找出最小值和最大值。试试下面的例子:
mysql> SELECT MIN(daily_typing_pages) least, MAX(daily_typing_pages) max
-> FROM employee_tbl;
+-------+------+
| least | max |
+-------+------+
| 100 | 350 |
+-------+------+
1 row in set (0.01 sec)

MySQL是目前使用很广泛的数据库,在使用过程中,有时我们会遇到一个与 "max_allowed_packet" 相关的报错,那如何解决这个问题呢? 看如下经验。

方法/步骤

先看看与这个错误相关的后台异常 :

Packet for query is too large (1706 > 1024). You can change this value on the server by setting the max_allowed_packet' variable. 

一旦数据库出现这个问题,基本执行任何查询语句,后台都会报这个错!(除非查询所得数据量特别少)!

先登录数据库,查看 max_allowed_packet 这个参数值

连接数据库服务器,登录 mysql, 执行命令 : 

show variables like '%max_allowed_packate%' 

即可查看这个系统参数目前的值 ! 我的系统,目前显示只有 1024 字节,确实太小了!

通过 mysql 命令更改这个值到 100M !

连接数据库服务器,登录 mysql, 执行命令 : 

set global max_allowed_packet = 100*1024*1024

退出后,重新登录 mysql ,再次查看这个系统项的值, 注意,必须重新登录mysql,否则这个值还是显示为原始值(缓存)!

修改后,这个配置项显示为 100 M !

修改配置文件--Windows

我们刚才的修改是针对运行环境,但如果我们的配置文件不变,则重启数据库后,这个值又恢复为原始值了,对于 Windows 下的 MySQL,我们需要修改其配置文件 my.ini , 这个文件在 MySQL 的安装根目录下。

注意: MySQL 配置文件分为几个段 (Section), 包括 [mysql], [mysqld], [mysqldump] 等, 我们需要在 [mysqld] 段下添加配置项 : 

max_allowed_packet = 100M

修改配置文件--Linux

在 Linux 中,MySQL 对应的配置文件是 my.cnf , 我们在Linux终端输入如下命令 : 

mysql --help | grep my.cnf

可以查看 MySQL 所使用的 my.cnf 列表(优先级列表,先找到的配置文件生效),MySQL 会逐个目录寻找这个文件,直到找到为止!

我们逐个目录找到我们系统 MySQL 所使用的 my.cnf 配置文件,找到对应的配置项,修改为 100M 即可。




三原县18346205249: 如何解决 MySQL max -
潘贤尿路: MySQL Max() 函数是用来找出记录集中最大值的记录.要理解 Max() 函数,考虑 employee_tbl 表,它是具有以下记录:mysql> SELECT * FROM employee_tbl;+------+------+------------+--------------------+ | id | name | work_date | daily_typing_...

三原县18346205249: 如何解决MySQL超过最大连接数问题 max -
潘贤尿路: 方法1、mysql中提高max_connections的值.不要太高,依据你的内存而定.一般8G-16G内存服务器500-1000 mysql> set GLOBAL max_connections=1000; 方法2、从应用层限制连接数据库的最大连接数

三原县18346205249: 如何解决超过MySQL配置文件中的"max -
潘贤尿路: 1、mysql提高max_connections值要太高依据内存定般8G-16G内存服务器500-1000 mysql> set GLOBAL max_connections=1000;2、应用层限制连接数据库连接数

三原县18346205249: 如何修改mysql数据库的max -
潘贤尿路: 修改方法为:进入mysql的安装目录,找到my.ini文件,在最底下加上 max_allowed_packet=*M (自己视情况设置)即可.

三原县18346205249: mysql 怎么修改max -
潘贤尿路:mysql 怎么修改max,解答如下 修改方法为:进入mysql的安装目录,找到my.ini文件,在最底下加上 max_allowed_packet=*M (自己视情况设置)即可.小刚SEO为你解答

三原县18346205249: 怎样突破mysql max -
潘贤尿路: 先登录数据库,查看 max_allowed_packet 这个参数值连接数据库服务器,登录 mysql, 执行命令 : show variables like '%max_allowed_packate%' 即可查看这个系统参数目前的值 ! 我的系统,目前显示只有 1024 字节,确实太小了!

三原县18346205249: 怎么更新mysql的max -
潘贤尿路: 可以通过下面的sql语句将max_connections的值设置为200,当然前提是当前登录的用户有足够的权限:set global max_connections = 200;这个设置会马上生效,但是当mysql重启时这个设置会失效,更好的办法是修改mysql的ini配置文件my.ini找到mysqld块,修改或者添加下面的设置:max_connections=200这样修改之后,即便重启mysql也会默认载入这个配置了

三原县18346205249: mysql中如何查看最大连接数max -
潘贤尿路: 通常,mysql的最大连接数默认是100, 最大可以达到16384. 1、查看最大连接数: show variables like '%max_connections%'; 2、修改最大连接数 方法一:修改配置文件.推荐方法一 进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf...

三原县18346205249: mysql 如何更新mysql的最大连接数max -
潘贤尿路:方法如下:第一种:命令行修改. >mysql -uuser -ppassword(命令行登录MySQL)mysql>show variables like 'max_connections';(查可以看当前的最大连接数)msyql>set global max_connections=1000;(设置最大连接数为1000,可以再...

三原县18346205249: Changed limits: max - open - files: 2048 max - connections: 2038 table - cache: 64 怎么解决,高手帮忙!! -
潘贤尿路: mysql提示Changed limits: max_open_files: 2048 max_connections: 2038 table_cache: 64解决办法 在windows下安装Mysql系统日志出现max_open_files: 2048 max_connections: 510 table_cache: 64 类似错误是因为 max_connections 最大连接...

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网