关于Navicat连接MySql数据库慢的问题
项目场景:
操作MySql数据库
问题描述:
通过Navicat连接MySql数据库表,第一次打开表都还挺正常的,但是一段时间没操作Navicat之后再打开其他表的时候就会出现卡死,要等很久才会响应。
原因分析:
我的数据库是放在最近买的腾讯服务器上,我怀疑是不是刚安装的MySql数据库是不是什么配置没有配置好,所以上网搜索了这类的问题,说是MySql默认开启了Dns反向解析,我就以下配置方法进行尝试
在/etc/my.cnf的mysqlid下面添加这样的字段:
skip-name-resolve
配置后发现问题依旧存在,之后再通过查询发现有一个文章说是Navicat客户端有保持连接间隔的机制,默认是240秒,意思就是客户端在用户无任何操作时,每隔240秒会给MySql服务器发送一次请求,用于保持数据库的活跃。
但是因为Navicat设置的间隔时间过长,导致之前的数据库连接已经断开了,当我们打开新的表的时候,Navicat会拿着旧的连接去请求,发现旧的不可用后才申请一个新的连接去请求,所以才会导致我们打开一个表的时间会那么长
解决方案:
修改Navicat的保持连接间隔时间
Navicat – 编辑数据库连接 – 高级 – 勾选保持连接间隔 – 输入框设置为30 – 点击确定!
知识点补充:
解决Navicat远程连接mysql很慢的方法
开发某应用系统连接公司的测试服务器的mysql数据库连接打开的很慢,但是连接本地的mysql数据库很快,刚开始认为可能是网络连接问题导致的,在进行 ping和route后发现网络通信都是正常的,而且在mysql机器上进行本地连接发现是很快的,所以网络问题基本上被排除了,所以想看看是不是mysql的配置问题。在查询mysql相关文档和网络搜索后,发现了一个配置似乎可以解决这样的问题,就是在mysql的配置文件中增加如下配置参数:
[mysqld]
skip-name-resolve
在linux下配置文件是/etc/my.cnf,在windows下配置文件是mysql安装目录下的my.ini文件。注意该配置是加在 [mysqld]下面,在更改配置并保存后,然后重启mysql并远程连接测试,一切恢复如初。
下一篇:基于navicat连接登录windows10本地wsl数据库