今天用Navicat登陆远程的MySql。等待约一两分钟后出现错误提示:
SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', system error: 0
如下图所示:
通过show processlists命令查看所有连接用户的状态时,发现用户变为unauthenticated user;
打开你的在my.ini或者my.cnf配置文件,在下面位置处添加“skip-name-resolve”语句,如下:
# SERVER SECTION # ---------------------------------------------------------------------- # # The following options will be read by the MySQL Server. Make sure that # you have installed the server correctly (see above) so it reads this # file. # [mysqld] # 这就是我们添加的(注意放置的位置) skip-name-resolve # The TCP/IP Port the MySQL Server will listen on port=3306
skip-name-resolve 它将禁止MySql Server对外部连接进行DNS解析,使用这一选项可以消除MySql进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求。
这也是MySql的一个启动参数;顾名思义,就是在启动mysql时不启动grant-tables(授权表)。有什么用呢?当然是忘记管理员密码、mysql数据库中user表出问题时有用。使用该参数,那么任何帐号用任何的密码(当然也包括空)都可以登录到mysql数据库了。