MySQL修改数据库表的默认空间配置(两种方式实现)

一:问题背景介绍.

     1. MySQL插入1000W条数据的时候因数据量大于单表默认数据量而报错.(MySQL 5.7)

            com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4232009 > 4194304). You can change this value on the server by setting the max_allowed_packet’ variable.

            描述:说明单表的默认存储空间存不下了,导致数据写入单表失败了,需要修改默认的存储空间大小为更大的.

      2. MySQL的单表默认存储大小.

              MYSQL默认的存储空间大小是:4194304/1024/1024=4M.

                                                   (方式一:基于MySQL命令行的修改方式)

      3. Navicat下查看单表的默认大小.

          show VARIABLES like 'max_allowed_packet';

                       

     4. 修改默认的单表存储大小.(这里以修改为10M为例进行测试).

          set global max_allowed_packet=10*1024*1024;

            

          现在查询一下大小.(发现没有生效).

             

          关闭这个窗口重新登录一下Navicat的命令行界面.(关键)10485760/1024/1024=10M

             

          但是现在查看MySQL的配置文件发现max_allowed_packet还是默认的4M,因为是临时生效,并未修改配置文件.          

                                                 (方式二:基于配置文件的修改方式)

     还可以通过配置文件的方式来修改:MySQL服务的路径下修改

   

   如果修改会提示拒绝访问的.(出于MySQL服务器安全性考虑).

  赋予修改权限即可.

 点击应用->确定.

 

然后修改my.ini文件.配置文件向下找到max_allowed_packet配置项.

因为修改了配置文件,所以要重新启动一下MySQL服务,使配置生效(打开任务管理器,点击下面的菜单条最右边的服务).

重新启动完毕后,可以在客户端测试一下了,发现现在是15M了.(15728640/1024/1024=15M)

对比:

       相比于第一种使用MySQL命令行修改的方式更方便一下,但是如果MySQL服务器要重新启动就失效了,要在使用的时候在重新设置一下.

       第二种修改在重启MySQL时指定配置文件可以永久生效的.(Linux下).

       至此基于MySQL修改单表存储空间两种方式已测试完成通过.

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道之简

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值