迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > MySQL >

更改 MySQL 服务器中的 max_allowed_packet Size

作者:迹忆客 最近更新:2023/05/07 浏览次数:

本篇文章介绍如何更改 MySQL 服务器中的 max_allowed_packet 大小。 为了了解这一点,我们将使用两个操作系统,Windows 10 和 Linux (Ubuntu)。


更改 MySQL 服务器中的 max_allowed_packet Size

如果我们尝试上传大于 max_allowed_packet 默认值的文件,我们会收到一条错误消息,指出不允许大于 max_allowed_packet 的数据包。

要消除此错误,我们需要更改 max_allowed_packet 的大小。 但在此之前,让我们检查一下它的默认值,如下所示。

mysql> SHOW VARIABLES LIKE 'max_allowed_packet';

输出:

+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set (0.06 sec)

现在,max_allowed_packet 的大小为 4MB,等于 4194304 字节。 考虑到 MySQL 文档,MySQL 客户端和服务器有自己的 max_allowed_packet 大小。

我们在上面使用 SHOW VARIABLES LIKE 'max_allowed_packet' 看到的值; query 是 MySQL Server 端的值。 如果我们想处理更大的数据包,有必要增加 max_allowed_packet 的值。

假设我们要将其更改为 50MB。 我们可以通过更新服务器端的配置文件(my.ini 文件中名为 [mysqld] 的部分)以及客户端(my.ini 文件中名为 [mysql] 或 [client] 的部分)来实现。 .ini 文件)。

如果我们有 SUPER 特权(许可),我们也可以使用 SQL 查询更改此设置。 如何? 让我们看看下面的两种解决方案。


使用 Windows 操作系统更改 MySQL 服务器中的 max_allowed_packet 大小

  1. 打开 Windows 命令行并浏览安装路径。 如果您没有更改默认位置,则 MySQL 服务器安装在 C:\Program Files\MySQL\MySQL Server 8.0。
  2. 使用 cd bin 转到 bin 文件夹。
  3. 键入 mysql -u root -p password 以登录到 MySQL 服务器。 我们以 root 用户身份进入; 您可以使用您的用户名和密码。
  4. 进入后,执行以下查询以更改 MySQL 服务器中的 max_allowed_packet 大小。
    mysql> SET GLOBAL max_allowed_packet=52428800;
    
  5. 再次执行以下查询以确认更改。
    mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
    
    输出:
    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 52428800|
    +--------------------+---------+
    1 row in set (0.00 sec)
    

如果您在默认位置安装了 MySQL 服务器,则下面给出的解决方案是使用位于默认路径的配置文件。 配置文件路径为C:\ProgramData\MySQL\MySQL Server 8.0\my.ini。

  1. 打开 my.ini 文件。
  2. 搜索 [mysqld] 部分并在此部分下添加以下一行。
    max_allowed_packet=50M
    
  3. 保存并关闭文件。
  4. 重新启动 MySQL 服务器以查看更改。

使用 Ubuntu 操作系统更改 MySQL 服务器中的 max_allowed_packet 大小

进入 MySQL 服务器后,我们可以在 Ubuntu 上使用与 Windows 操作系统相同的查询。 步骤如下。

  1. 打开 Ubuntu 终端,并使用 sudo su 以超级用户身份登录。
  2. 此外,登录到 MySQL 服务器。
  3. 最好在进行任何更改之前检查变量的默认值或以前的值。 为此,我们可以使用以下查询。
    mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
    
    输出:
    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 67108864|
    +--------------------+---------+
    1 row in set (0.00 sec)
    

    执行以下查询将 max_allowed_packet 的值更新为 70MB,即 73400320 字节。

    mysql> SET GLOBAL max_allowed_packet=73400320;
    
  4. 我们可以运行 SHOW VARIABLES LIKE 'max_allowed_packet'; 查询以确认更改是否发生。

如果您是一个非常擅长编辑配置文件的人,那么以下解决方案特别适合您。

  1. 打开位于/etc/mysql/mysql.conf.d/mysqld.cnf路径下的配置文件。
    $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    
  2. 在名为 [mysqld] 的部分下搜索 max_allowed_packet 并将其值更改为您的选择。 如果不存在,请在 [mysqld] 下添加以下行。

    请记住,我们正在将其更改为 70M。 但是,您可以写下您的电话号码。

    max_allowed_packet=70M
    
  3. 保存并退出文件。
  4. 使用systemctl restart mysql重启MySQL Server,执行以下命令确保更新。
    mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
    
    输出:
    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 73400320|
    +--------------------+---------+
    1 row in set (0.03 sec)
    

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 Mysqldump 备份 MySQL 中的数据

发布时间:2023/05/09 浏览次数:192 分类:MySQL

本篇文章将介绍如何使用 mysqldump 只备份数据。 在这里,我们将探讨 --no-create-info 、--compact 、--skip-triggers 和 --no-create-db 选项。

更新 MySQL 表中的主键

发布时间:2023/05/09 浏览次数:61 分类:MySQL

本篇文章介绍如何更新 MySQL 表中的主键。 我们将使用 ALTER 命令对主键进行任何更改。更新 MySQL 表中的主键 我们可以在多种情况下更新 MySQL 表中的主键。

在 MySQL 中获取命令历史记录

发布时间:2023/05/09 浏览次数:150 分类:MySQL

本文重点介绍了在 Windows 和 Linux 中获取我们已执行的 MySQL 命令历史记录的各种方法。MySQL命令历史

Oracle 的 decode 函数在 MySQL 中的等价物

发布时间:2023/05/09 浏览次数:115 分类:MySQL

本篇文章介绍了三种替代实现,我们可以将它们用作 MySQL 中 Oracle 的 decode() 函数的等价物。 为此,我们将使用 IF()、CASE 以及 FIELD() 和 ELT() 的组合。

在 Linux 中安装 MySQL 客户端

发布时间:2023/05/09 浏览次数:72 分类:MySQL

在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。

在 MySQL 中转换为十进制

发布时间:2023/05/09 浏览次数:150 分类:MySQL

有时,我们可能需要将一种数据类型转换为另一种数据类型。 下面是我们如何使用带有 DECIMAL(M,D) 的 CAST() 和 CONVERT() 函数在 MySQL 中转换为十进制。

在 MySQL 中获取当前日期和时间

发布时间:2023/05/09 浏览次数:145 分类:MySQL

本篇文章我们将学习 NOW()、CURRENT_TIMESTAMP()(也写为 CURRENT_TIMESTAMP)和 SYSDATE() 来获取 MySQL 中的当前日期和时间。 我们还将看到这三个功能之间的比较。在 MySQL 中获取当前日期和时间

MySQL 货币数据类型

发布时间:2023/05/09 浏览次数:192 分类:MySQL

本篇文章介绍最适合在 MySQL 中存储货币值的 DECIMAL(P,D) 数据类型。MySQL 货币数据类型 货币价值需要准确的表示。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便