MySQL range分区用了MAXVALUE,想要添加新分区该怎么办

MySQL range分区用了MAXVALUE,想要添加新分区该怎么办,第1张

若设置了 LESS THAN MAXVALUE分区,添加新分区时,需要重新分区。

/*重新定义range分区表:*/

Alter table emp partition by range(salary)

(

partition p1 values less than (2000),

partition p2 values less than (4000)

)----不会丢失数据

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 即可。

1、首先打开cmd或PowerShell,进入mysql。

2、选择或者创建一个数据库,使用了以前创建的数据库test。

3、在数据库下创建表stu,表结构如图。

4、接着向stu表插入四条数据,插入后查看该表的数据。

5、再输入sql语句 update stu set credit1=82就可以获取一列中的最大值了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7652672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存