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