迹忆客 专注技术分享

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

本文地址:

相关文章

如何在 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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便