【问题标题】:mysql lost connection errormysql失去连接错误
【发布时间】:2018-04-19 22:58:14
【问题描述】:

目前,我正在做一个项目,将 mysql 与 IOCP 服务器集成以收集传感器数据并验证来自客户端的收集数据。

但是,也有mysql漏掉连接的情况。

查询本身是一个简单的查询,它插入单行记录或获取日期间隔之间的平均值。

每个传感器的数据每 5 秒同时流入 DB。当传感器的消息偶尔出现或与客户端的消息重叠时,连接断开。

查询期间与 mysql 服务器的连接丢失

关于抛出上述消息

max_allowed_packet 号码已更改。 interactive_timeoutnet_read_timeoutnet_write_timeoutwait_timeout

好像如果有重叠的查询,就会出错。

如果您知道解决方案,请告诉我。

【问题讨论】:

    标签: c++ mysql iocp


    【解决方案1】:

    我在 MySQL 服务器中遇到了类似的问题,该服务器具有非常简单的查询,其中并发查询的数量很高。我不得不禁用查询缓存来解决这个问题。您可以尝试使用以下语句禁用查询缓存。

    SET GLOBAL query_cache_size = 0;
    SET GLOBAL query_cache_type = 0;
    

    请注意,服务器重启将再次启用查询缓存。如需保留,请将配置放入 MySQL 配置文件中。

    【讨论】:

      【解决方案2】:

      你能运行下面的命令并检查当前超时吗?

      SHOW VARIABLES LIKE '%timeout';
      

      如果需要,您可以更改超时 -

      SET GLOBAL <timeout_variable>=<value>;
      

      【讨论】:

      • connect_timeout 10 delayed_insert_timeout 300 have_statement_timeout YES innodb_flush_log_at_timeout 1 innodb_lock_wait_timeout 50 innodb_rollback_on_timeout OFF interactive_timeout 4147200 lock_wait_timeout 31536000 net_read_timeout 120 net_write_timeout 120 rpl_stop_slave_timeout 31536000 slave_net_timeout 60 WAIT_TIMEOUT 4147200我更改,跨度>
      • 您的查询需要多长时间?相应地更改连接超时,例如将其更改为 60 秒,SET GLOBAL connect_timeout=60;
      猜你喜欢
      • 2021-07-23
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      相关资源
      最近更新 更多