我使用JDBC连接MySQL。当它在localhost:3306
时,一切正常。
但是当我将应用程序移动到内部网络中的另一台计算机,并使用<Intranet-IP>:3306
连接到MySQL数据库时,连接成功需要大约1分钟。这是怎么回事?
我使用JDBC连接MySQL。当它在localhost:3306
时,一切正常。
但是当我将应用程序移动到内部网络中的另一台计算机,并使用<Intranet-IP>:3306
连接到MySQL数据库时,连接成功需要大约1分钟。这是怎么回事?
这可能是DNS问题。您可以在配置文件中使用--skip-name-resolve
选项启动mysqld
来禁用DNS主机名查找。
更多详细信息请参阅此处:http://dev.mysql.com/doc/refman/5.0/en/host-cache.html
--skip-name-resolve
对我来说非常有效。
为了使其永久生效,我只需在[mysql]
部分的my.ini
文件末尾添加这一行:
skip-name-resolve
瞧!交易现在飞起来了!
mysql.cnf
or my.cnf
- aswzen对于我来说,我在这里找到了解决方案。如果启用了IP6连接,则连接“localhost”可能会很慢,而应使用IP地址127.0.0.1。这对我很有用。
防火墙、互联网、路由等等会减慢您的连接速度。
您应该将数据库放在内部网络上。将其保持本地化并放在大型防火墙后面。当然,您可以在计算机之间设置防火墙和安全性。我建议您不要以未经过滤的方式将mysql数据库连接暴露在互联网上。
评论/对一个非常非常古老的问题的发现。
背景-典型情况:从Windows(各种版本)连接到Win或Linux服务器上的SQL Server很慢...需要多秒钟(即使从VBox上的Win客户端连接到同一主机上的服务器也是如此)
skip-name-resolve
,dns-bind
-尝试了各种方法,但没有效果。
查看手册-连接字符串选项-没有时间逐个学习它们的含义,设置并尝试-只要不出问题就行。
将sslmode=none;
添加到连接字符串中...连接时间减少了不到1/10。亚秒级连接,毫秒级!
注意: 它在一个小办公室私人局域网中,所以不用担心任何安全问题。 ... 它有效...我接受了。
skip_name_resolve
,尽管我认为带破折号也可以。 - NickSoft