我使用 JDBC 连接到 MySQL。当它在 时localhost:3306
,一切正常。
但是当我将我的应用程序移动到内网的另一台计算机上,并使用<Intranet-IP>:3306
连接到 MySQL 数据库时,大约需要 1 分钟才能成功连接到 MySQL。这是怎么回事?
我使用 JDBC 连接到 MySQL。当它在 时localhost:3306
,一切正常。
但是当我将我的应用程序移动到内网的另一台计算机上,并使用<Intranet-IP>:3306
连接到 MySQL 数据库时,大约需要 1 分钟才能成功连接到 MySQL。这是怎么回事?
那么它可能是一个DNS问题。您可以从配置文件中mysqld
的选项开始禁用 DNS 主机名查找。--skip-name-resolve
阅读此处了解更多详细信息: http: //dev.mysql.com/doc/refman/5.0/en/host-cache.html
对--skip-name-resolve
我来说效果很好。
为了使其永久化,我只需my.ini
在该[mysql]
部分的文件末尾添加这一行:
skip-name-resolve
瞧!交易现在飞起来!
对我来说,这是我在这里找到的解决方案,如果启用了 IP6 连接,连接到“localhost”可能会很慢,而是使用 IP 地址 127.0.0.1。这对我有用。
防火墙、互联网、路由等会减慢您的连接速度。
您应该将数据库放在内部网络上。将其保存在本地并位于您的大防火墙后面。您当然可以在计算机之间设置防火墙和安全性。我建议您不要以这种方式将 mysql 数据库连接公开到未经过滤的 Internet。
评论/发现一个非常古老的问题。
背景 - 典型:从 windows(各种)连接到 win 上的 sql server 或 linux server 慢...多秒(甚至从 VBox 上的 win 客户端连接到同一主机上的服务器)
skip-name-resolve
, dns-bind
- 尝试了各种方法,不管没有效果。
看了手册——连接字符串选项——没时间了解它们的意思,一个接一个地设置和尝试——只要没有中断。
添加sslmode=none;
到连接字符串...连接时间几乎不到 1/10。亚秒级连接,毫秒!
注意:它在一个小型办公室的专用 LAN 中,所以不要使用任何安全 FUD ......它可以工作......我会接受的。