迹忆客 专注技术分享

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

MySQL 中更改连接超时

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

我们正在学习如何使用 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_timeoutwait_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)

转载请发邮件至 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 服务器中的 max_allowed_packet Size

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

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

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便