<
>

MySQL远程访问设置终极方法

2019-01-05 10:03:04 来源:易采站长站 作者:刘景俊

ERROR 2003 (HY000)错误的原因以及解决办法。


$ mysql -h192.168.1.113 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.113' (111)

是说话,出现这个问题,D瓜哥也很蛋疼。不知这又是怎么搞的!不过,好在有错误代码(ERROR 2003 (HY000)),有了这个就有了打开解决方法之门的钥匙。解决方法垂手可得。

用Google百度一下,之后在StackOverflow上查到了原因:MySQL数据库的配置文件/etc/mysql/my.cnf中的bind-address = 127.0.0.1没有注释掉,导致MySQL只能接收本地的访问。

知道了原因,解决方法也就随之而来,注释掉这行,然后重启服务器。具体做法,参考本文开头部分。

ERROR 1130错误的原因以及解决办法

D瓜哥在查资料的过程中,还遇到别人提到的一个错误。日志如下:


ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server

给的解答是“所用主机的IP地址不在被允许登录的IP之内”。

D瓜哥也测试了一下这个错误。刚刚开始测试的时候,这个错误没有重现,还以为我测试有问题。后来,重启了一下数据库,再次测试发现成功了。确实有这个错误。另外,根据D瓜哥个人测试经验,善意提醒一句,对mysql.user表进行修改后,记得执行一下flush privileges或者重启一下数据库。

关于mysqld_safe的简介

在这次解决这些问题的过程中,D瓜哥查看了一下MySQL的进程。命令以及返回值如下:


>ps aux | grep mysql
root      1231  0.0  0.0   4444   740 ?        S    15:09   0:00 /bin/sh /usr/bin/mysqld_safe
mysql     1604  0.9 23.0 1134700 471332 ?      Sl   15:09   0:23 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
root      1605  0.0  0.0   4340   644 ?        S    15:09   0:00 logger -t mysqld -p daemon.error
vagrant   3942  0.0  0.0  12140   928 pts/0    S+   15:51   0:00 grep --color mysql

嗯?!有木有发现一个刚刚说明的熟悉的东东:mysqld_safe。这个东东怎么启动起来呢?刚开始D瓜哥以为这个东西不应该启动,甚至还可能导致远程登录数据库不成功。(因为当时确实有这个问题。而且,在上面跳过认证校验的启动时,用到这个命令了。所以,D瓜哥认为它不应该被启动。)经过和敌人(你知道,这肯定是这里提到的一些问题)“艰苦卓绝”斗争后,发现问题不是这个东东造成的。幸好多思考了一点,否则D瓜哥晚节不保啊!哈哈

暂时禁止评论

微信扫一扫

易采站长站微信账号