很多朋友都可能碰到过远程连接mysql要不就是连接不上,要不就是很慢,我今天也碰到了下面我来把我解决连接速度慢方法分享给大家.
我想连接同事机器上的数据库,在账号密码什么都正确的情况,还是遇到了几个问题.
1、防火墙
通过telnet 同事机器IP 3306,结果死活是连不上,曾经处理过类似的问题,于是把同事机器上的防火墙直接关闭就能telnet了.
2、连接数据库很慢
在PHP中连接MySQL数据库非常慢,我以为是PHP扩展有异常,于是换cmd来操作,结果连接还是很慢,这让我排除了是PHP的原因,百度一下,得知是因为MySQL连接有以下几个步骤:
1、DNS解析连接的HOST
2、解析不了,就直接当前IP连接。.
于是,通过在mysql的配置文件中的[mysqld]下面添加了一行代码:
skip-name-resolve 在连接远程数据库的时候,直接跳过MySQL的DNS解析.
2. 在启动mysqld服务器的时候,附加 –skip-name-resolve 选项,原理与第一个一样
3. 增大HOST_CACHE_SIZE的值,HOST_CACHE_SIZE的默认值是128,适合多个远程主机
因为我是使用IP来连接,根本DNS解析不了,所以,在解析的过程中就占用了很长的时间,这段时间导致DNS解析超时,通过上面的代码,直接让MYSQL不要去DNS解析.
注意:若使用–skip-grant-tables系统将对任何用户的访问不做任何访问控制,但可以用 mysqladmin flush-privileges或mysqladmin reload来开启访问控制;默认情况是show databases语句对所有用户开放,
如果mysql服务器没有开远程帐户,就在my.ini里面加上skip-grant-tables
新闻热点
疑难解答