迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > 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 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 MySQL 中声明和使用变量

发布时间:2024/03/26 浏览次数:115 分类:MySQL

当你需要在 MySQL 中的脚本中存储单个值时,最好的方法是使用变量。变量有不同的种类,有必要知道何时以及如何使用每种类型。

在 MySQL 中实现刷新权限

发布时间:2024/03/26 浏览次数:211 分类:MySQL

本教程介绍了 MySQL 中的刷新权限命令,用于刷新授权表并影响允许的更改。

在 MySQL 中设置时区

发布时间:2024/03/26 浏览次数:93 分类:MySQL

在本教程中,我们将学习如何在 MySQL 服务器中更改时区。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便