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