远程连接mysql数据库注意事项记录(远程连接慢skip-name-resolve)

462 查看

一、如何新建独立帐号并设置权限

  这里我使用Navicat作为我的数据库管理工具,打开Navicat。

选择“用户”--“新建用户”

输入用户名、主机、密码,需要注意的是,主机那不是写“localhost”,而是写“%”

然后可以设置“服务器权限”

和指定数据库的权限,最后保存退出即可

二、远程连接慢

  慢是一个很大的问题,网上的办法是在my.ini的“[mysqld]”下面加入一行“skip-name-resolve”,就像这样:

  然后保存并重启mysql服务即可。

下面是其它网友的补充:

问题现象是这样的:

我在一台机器上(61.183.23.23)启动了一个mysql,然后开通一个账号可以从127.0.0.1或者从61.183.23.23访问。但是遇到一个问题就是使用下面两个命令行访问的时候,速度差别非常大:

mysql –h 127.0.0.1 –u user
mysql –h 61.183.23.23 –u user

然后我使用ping,判断两个IP的速度差不多。

使用127.0.0.1的IP速度比另一个快太多了。虽然说这里的61.183.23.23需要去外网走一圈,但是速度差别怎么会差这么多。

解决办法:

mysql使用skip-name-resolve禁止掉DNS的查询。
mysql会在用户登录过程中对客户端IP进行DNS反查,不管你是使用IP登录还是域名登录,这个反查的过程都是在的。所以如果你的mysql所在的服务器的DNS有问题或者质量不好,那么就有可能造成我遇到的这个问题,DNS解析出现问题。

修改mysql配置文件

[mysqld]
skip-name-resolve

补充:

做个提醒,增加skip-name-resolve有可能导致账号失效,比如我原先的账号是yejianfeng@localhost,然后其实我使用mysql -h127.0.0.1 -uyejianfeng 是可以登录的。但是一旦加上了skip-name-resolve,就不能登录的了。需要加上账号yejianfeng@127.0.0.1

数据库加这个参数速度会变快skip-name-resolve,但是也有注意点,mysql.user 表里面的 host 不要用 localhost 之类的,要用127.0.0.1不然连自己都连不上数据库,会报错

我现在都是先不加skip-name-resolve,现在创建一个root用户不过域是127.0.0.1,然后再把skip-name-resolve加上,就可以使用root登录了,新建用户直接用127.0.0.1,这样就OK了。