0

我有一个远程 MySQL 数据库,我部署的应用程序(一些 java 微服务应用程序)在 ERROR 2013 (HY000): Lost connection to MySQL during query一些 SQL 查询中始终遇到错误。然后我尝试使用 MySQL 命令行客户端连接到 mysql,执行相同的查询,并设法复制相同的错误。以下是遵循此页面https://dev.mysql.com/doc/refman/5.7/en/error-lost-connection.html后的 Mysql 设置

+------------------------------+----------+
| Variable_name                | Value    |
+------------------------------+----------+
| connect_timeout              | 3600     |
| delayed_insert_timeout       | 300      |
| have_statement_timeout       | YES      |
| innodb_flush_log_at_timeout  | 1        |
| innodb_lock_wait_timeout     | 5        |
| innodb_rollback_on_timeout   | OFF      |
| interactive_timeout          | 7200     |
| lock_wait_timeout            | 50       |
| net_read_timeout             | 3000     |
| net_write_timeout            | 6000     |
| rpl_semi_sync_master_timeout | 10000    |
| rpl_stop_slave_timeout       | 31536000 |
| slave_net_timeout            | 4        |
| wait_timeout                 | 7200     |
+------------------------------+----------+

+--------------------------+------------+
| Variable_name            | Value      |
+--------------------------+------------+
| max_allowed_packet       | 1073741824 |
| slave_max_allowed_packet | 1073741824 |
+--------------------------+------------+

但是,在从 mysql 命令行客户端执行大 SQL 查询后大约 10 分钟后,我系统地遇到了同样的错误。

注意:在 DB 服务器端,我注意到日志 [Note] Aborted connection xxxxx to db: 'xxxxx' user 'xxxxx' host 'xxxxx' (Got an error writing communication packet)

DBA 在安装了 mysql 的服务器上成功执行了查询。但是我们必须远程使用mysql作为服务。

如果有人可以提供帮助,我将不胜感激。

4

1 回答 1

0

最后,根本原因是网络问题。我们的远程 MySQL 实例作为服务公开。客户端和 MySQL DB 之间有一个额外的代理。默认情况下,如果客户端和服务器之间超过 10 分钟没有通信,连接将被关闭。

于 2020-07-04T05:43:15.373 回答