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