更改 MySQL 服务器中的 max_allowed_packet Size
本篇文章介绍如何更改 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 大小
- 打开 Windows 命令行并浏览安装路径。 如果您没有更改默认位置,则 MySQL 服务器安装在 C:\Program Files\MySQL\MySQL Server 8.0。
- 使用 cd bin 转到 bin 文件夹。
- 键入 mysql -u root -p password 以登录到 MySQL 服务器。 我们以 root 用户身份进入; 您可以使用您的用户名和密码。
-
进入后,执行以下查询以更改 MySQL 服务器中的 max_allowed_packet 大小。
mysql> SET GLOBAL max_allowed_packet=52428800;
-
再次执行以下查询以确认更改。
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。
- 打开 my.ini 文件。
-
搜索 [mysqld] 部分并在此部分下添加以下一行。
max_allowed_packet=50M
- 保存并关闭文件。
- 重新启动 MySQL 服务器以查看更改。
使用 Ubuntu 操作系统更改 MySQL 服务器中的 max_allowed_packet 大小
进入 MySQL 服务器后,我们可以在 Ubuntu 上使用与 Windows 操作系统相同的查询。 步骤如下。
- 打开 Ubuntu 终端,并使用 sudo su 以超级用户身份登录。
- 此外,登录到 MySQL 服务器。
-
最好在进行任何更改之前检查变量的默认值或以前的值。 为此,我们可以使用以下查询。
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;
- 我们可以运行 SHOW VARIABLES LIKE 'max_allowed_packet'; 查询以确认更改是否发生。
如果您是一个非常擅长编辑配置文件的人,那么以下解决方案特别适合您。
-
打开位于/etc/mysql/mysql.conf.d/mysqld.cnf路径下的配置文件。
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
-
在名为 [mysqld] 的部分下搜索 max_allowed_packet 并将其值更改为您的选择。 如果不存在,请在 [mysqld] 下添加以下行。
请记住,我们正在将其更改为 70M。 但是,您可以写下您的电话号码。
max_allowed_packet=70M
- 保存并退出文件。
-
使用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)
相关文章
使用 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() 的组合。
使用 Ubuntu 连接远程 MySQL 服务器的不同方法
发布时间:2023/05/09 浏览次数:97 分类:MySQL
-
在本文中我们将学习如何使用 Ubuntu 连接远程 MySQL 服务器来操作数据以及启动和停止 MySQL 服务器。
在 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 货币数据类型 货币价值需要准确的表示。