更改 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)
相关文章
如何在 MySQL 中声明和使用变量
发布时间:2024/03/26 浏览次数:115 分类:MySQL
-
当你需要在 MySQL 中的脚本中存储单个值时,最好的方法是使用变量。变量有不同的种类,有必要知道何时以及如何使用每种类型。
在 MySQL 中使用 Mysqladmin 刷新主机解除阻塞
发布时间:2024/03/26 浏览次数:82 分类:MySQL
-
你将了解阻止主机的原因。此外,通过使用 phpMyAdmin 和命令提示符刷新主机缓存来解除阻塞的不同方法和效果。