MySQL 中更改连接超时
我们正在学习如何使用 Linux (Ubuntu 20.04) 和 Windows 操作系统更改 MySQL 中的连接超时。
更改 MySQL 中的连接超时
有时,您会不断失去与 MySQL 服务器的连接,因为 connect_timeout 属性默认设置为几秒。
在这里,我们将看到如何使用 Linux (Ubuntu 20.04) 和 Windows 操作系统更改 MySQL 中 connect_timeout 的默认值。
我们可以更新配置文件或使用 SQL 查询在两个操作系统中进行更改。 让我们看看他们每个人。
使用 Windows 操作系统更改 MySQL connect_timeout
首先,我们需要打开 Windows 命令行并浏览 MySQL 服务器安装路径。 默认情况下,MySQL 服务器安装在 C:\Program Files\MySQL\MySQL Server 8.0。
在命令行上使用 cd bin 导航到 bin 文件夹。 此外,键入 mysql -u root -p password 以 root 用户身份登录。
现在,我们可以在进行必要的更新之前使用以下查询查看 connect_timeout 属性的默认值。
mysql> SHOW VARIABLES LIKE 'connect_timeout';
输出:
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| connect_timeout | 10 |
+-----------------+-------+
1 row in set (0.00 sec)
正如我们所见,与 MySQL 服务器的连接将在 10 秒后丢失。 因此,我们可以通过在 Windows 命令行上使用以下命令将其更改为 28800 秒(8 小时)。
请记住,更新
interactive_timeout
和wait_timeout
是好的,因为它在运行完全执行时消耗大量时间的应用程序时很有用。
mysql> SET GLOBAL connect_timeout=28800;
mysql> SET GLOBAL interactive_timeout=28800;
mysql> SET GLOBAL wait_timeout=28800;
使用以下命令确认所有更新。
mysql> SHOW VARIABLES WHERE Variable_Name
-> IN ('connect_timeout', 'interactive_timeout', 'wait_timeout');
输出:
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| connect_timeout | 28800 |
| interactive_timeout | 28800 |
| wait_timeout | 28800 |
+---------------------+-------+
3 rows in set (0.04 sec)
这里,connect_timeout 表示 mysqld 服务器在返回 Bad Handshake 之前等待连接数据包的秒数。 interactive_timeout 还显示 MySQL 服务器在关闭之前等待交互式连接上的活动的秒数。
与 connect_timeout 和 interactive_timeout 一样,wait_timeout 也显示 MySQL 服务器在关闭连接之前等待连接活动的秒数。
如果您正在编写一些应用程序,那么您可以按照以下方式通过编程语言(例如 Java 或 Python)对其进行更改。
connection.query('SET GLOBAL connect_timeout=28800')
connection.query('SET GLOBAL interactive_timeout=28800')
connection.query('SET GLOBAL wait_timeout=28800')
另一种方法是通过打开 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini 路径下的 my.ini 文件来更新配置文件(如果您已经在默认位置安装了 MySQL 服务器)。 然后,寻找 [mysqld] 部分并写入。
[mysqld]
connect_timeout = 28800
interactive_timeout = 28800
wait_timeout = 28800
重新启动 MySQL 服务器并享受更新。
使用 Linux (Ubuntu 20.04) 操作系统更改 MySQL connect_timeout
打开 Ubuntu shell 并使用 sudo su 以超级用户身份登录。 然后,使用以下查询登录到 MySQL 服务器。
$ mysql -u root -p password
进入后,检查 connect_timeout 的默认值,即 10 秒,如下所示。
mysql> SHOW VARIABLES LIKE 'connect_timeout';
输出:
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| connect_timeout | 10 |
+-----------------+-------+
1 row in set (0.00 sec)
现在,执行以下查询以更新 connect_timeout、interactive_timout 和 wait_timeout 的值。 如前所述,我们更新这三个以运行需要大量时间才能完全执行的应用程序。
mysql> SET GLOBAL connect_timeout=28800;
mysql> SET GLOBAL interactive_timeout=28800;
mysql> SET GLOBAL wait_timeout=28800;
输出:
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| connect_timeout | 28800 |
| interactive_timeout | 28800 |
| wait_timeout | 28800 |
+---------------------+-------+
3 rows in set (0.13 sec)
另一种方法是更新配置文件。 假设我们期望 28800 秒作为 connect_timeout、interactive_timeout 和 wait_timeout 的值。
为此,我们需要编辑位于此路径的配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf。 我们使用 vim 编辑器; 您可以使用任何编辑器来编辑此文件。
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
搜索 [mysqld]
部分并添加 connect_timeout、interactive_timeout 和 wait_timeout,如下所示。
[mysqld]
connect_timeout = 28800
interactive_timeout = 28800
wait_timeout = 28800
保存并退出文件。 使用 systemctl restart mysql
重新启动 MySQL 服务器。
使用以下查询以确保一切都已按预期更改。
mysql> SHOW VARIABLES WHERE Variable_Name
-> IN ('connect_timeout', 'interactive_timeout', 'wait_timeout');
输出:
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| connect_timeout | 28800 |
| interactive_timeout | 28800 |
| wait_timeout | 28800 |
+---------------------+-------+
3 rows in set (0.90 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 服务器中的 max_allowed_packet Size
发布时间:2023/05/09 浏览次数:142 分类:MySQL
-
本篇文章介绍如何更改 MySQL 服务器中的 max_allowed_packet 大小。 为了了解这一点,我们将使用两个操作系统,Windows 10 和 Linux (Ubuntu)。