mysql远程连接数据库很慢

PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的 MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入 skip-name-resolve这一句。连接mysql速度慢的解决方法. 

2台服务器,一台跑iis+php,一台跑mysql,和以往一样配置好环境,测试页面一切OK

跑 应用的时候发现php访问mysql速度很慢,这种情况在以前从未发现过,虽然2台服务器并非在同一网段中,但是ping数值基本上都在1,2ms之 间,tcp连接应该不是问题关健,google以后找到答案,在my.ini文件的[mysqld]部分加入:skip-name-resolve,保存 文件,重启mysql,一切OK啦,速度象飞一样了

新版本的mysql配置起来不象以前的那个傻瓜化了,这个问题折腾了我一上午的时间,晚上回来总算是解决了,嘿嘿,又学到一些东西。 

Windows 2003下的MySQL 5服务器,本机连接到MySQL服务非常快,局域网内有两台Linux机器,有一台连接很快,另外一台输入密码后要等好几秒钟才能连上。

解决办法:

在MySQL服务器的配置中增加一个如下配置后速度飞快。

[mysqld]
skip-name-resolve

附录:( How MySQL uses DNS )

When a new thread connects to mysqld, mysqld will spawn a new thread to handle the request. This thread will first check if the hostname is in the hostname cache. If not the thread will call gethostbyaddr_r() and gethostbyname_r() to resolve the hostname.

If the operating system doesn't support the above thread-safe calls, the thread will lock a mutex and call gethostbyaddr() and gethostbyname() instead. Note that in this case no other thread can resolve other hostnames that is not in the hostname cache until
the first thread is ready.

You can disable DNS host lookup by starting mysqld with --skip-name-resolve. In this case you can however only use IP names in the MySQL privilege tables.

If you have a very slow DNS and many hosts, you can get more performance by either disabling DNS lookop with --skip-name-resolve or by increasing the HOST_CACHE_SIZE define (default: 128) and recompile mysqld.

You can disable the hostname cache with --skip-host-cache. You can clear the hostname cache with FLUSH HOSTS or mysqladmin flush-hosts.

If you don't want to allow connections over TCP/IP, you can do this by starting mysqld with --skip-networking.

PHP 远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启 了DNS的反向解析,在MY.INI(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip- name-resolve这一句。

MYSQL远程连接速度慢的解决方法
在局域网内连接其他机器的MYSQL,发现速度慢的很,不知道什么原因,总有几秒的延迟.

后来在网上发现解决方法,my.ini里面添加

[mysqld]
skip-name-resolve 
skip-grant-tables

这样速度就快了!

skip-name-resolve 

选项就能禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

若使用–skip-grant-tables系统将对任何用户的访问不做任何访问控制,但可以用 mysqladmin flush-privileges或mysqladmin reload来开启访问控制;默认情况是show databases语句对所有用户开放,

如果mysql服务器没有开远程帐户,就在my.ini里面加上skip-grant-tables

附,请根据情况开放

skip-name-resolve  一般我们只要这一项便可以 
skip-grant-tables

时间: 2024-09-13 01:42:10

mysql远程连接数据库很慢的相关文章

mysql远程连接很慢解决办法

今天由于偶然登录mysql服务器(mysql服务器装有phpmyadmin)查看进程(SHOW PROCESSLIST),我了个去,大量未被认证用户连接mysql,进程结果如下: |13|unauthenticated user|10.135.26.100:42345|NULL|Connect| |login|NULL| |14|unauthenticated user|10.135.26.100:42346|NULL|Connect| |login|NULL| |15|unauthentica

mysql 远程连接数据库的方法集合_Mysql

1.改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" 复制代码 代码如下: mysql -u root -pvmwaremysql>use mysql; mysql>update user set host =

mysql远程连接数据库方法总结

mysql命令模式中连接mysql如下  代码如下 复制代码 mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysqlbin,  代码如下 复制代码 1.d:mysqlbin>mysql -h localhost -u root //这样应该可以进入MySQL服务器 2.mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION //赋予任何主机访问数据的

ubuntu下mysql不能远程连接数据库

MySQL远程访问的命令 格式: mysql -h主机地址 -u用户名 -p用户密码 示例: yanggang@host:~$ mysql -h192.168.1.11 -uroot -p123456 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.11' (111) 出现错误!无法连接远程的MySQL数据库 MySQL远程连接数据库,有两种方式: mysql.sock和TCP/IP,前者比后者连接访问速度更快,但仅

MySQL数据库远程连接很慢的解决方案_Mysql

有次同事提出开发使用的MySQL数据库连接很慢,因为我们的MySQL开发数据库是单独一台机器部署的,所以认为可能是网络连接问题导致的. 在进行 ping和route后发现网络通信都是正常的,而且在MySQL机器上进行本地连接发现是很快的,所以网络问题基本上被排除了.以前也遇到过一次这样的问题,可后来就不知怎么突然好了,这次又遭遇这样的问题,所以想看看是不是MySQL的配置问题.在查询MySQL相关文档和网络搜索后,发现了一个配置似乎可以解决这样的问题,就是在MySQL的配置文件中增加如下配置参数

mysql-JAVA桌面程序远程连接数据库失败

问题描述 JAVA桌面程序远程连接数据库失败 在本机运行程序可以连接数据库,数据库用的是mySQL.把程序放到没有安装mySQL的机子上就不行了.经过我的测试发现ip地址没有问题,因为我在本机运行程序的时候把ip设置成此网络的ip是可以连接的,用localhost也是可以连接的.在其他机子上我用的也是本机ip,却不能连接. 很多人说mySQL默认是不能远程的.于是我在本机设置防火墙上把3306端口开放,然后设置mySQL的用户权限,结果在其它机子上还是不能连接数据库,详情请看图. 解决方案 te

mysql远程连接设置

远程连接mysql数据库: 连接上以后,通过这台跳转服务器远程连接mysql库: 用法:mysql -h ip/主机名  -u 用户名  -p 密码 [root@AY131227102745952439Z /etc]#mysql -h rdsa3qfmmqriq3y.mysql.rds.aliyuncs.com  -u weblog -p Enter password: Welcome to the MariaDB monitor.  Commands end with ; or \g. You

服务器-sql远程连接数据库失败

问题描述 sql远程连接数据库失败 有一台服务器是数据库,在别的服务器上远程连接这个数据库是可以连接的,但是唯独这一台不可以.闹不明白咋回事.还麻烦下哥哥姐姐们帮想想办法.看下是哪里有问题了.不胜感激! 解决方案 ping一下看看是不是网络问题,再检查下本地安装的数据库软件是否可用. 解决方案二: 1.确认网关正常 2.链接中用的是主机名还是IP,如果是主机名,确认主机名得到正确解析.可以换为IP连接试试 解决方案三: 网络问题,看是数据库进程运行正常 解决方案四: 还有是否有防火墙拦截请求 解

在dos下如何远程连接数据库?连接远程服务器的数据库还需要在本机装数据库么?

问题描述 在dos下如何远程连接数据库?连接远程服务器的数据库还需要在本机装数据库么? 那位大神指导下如何在dos下远程连接数据库?我感觉不用再本地装了啊,求大神指导 解决方案 一.连接MYSQL. 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中