MySQL远程访问设置终极方法(9)
>sudo service mysql start
如果是需要启动跳过认证的方式启动,则使用如下命令之一:
sudo mysqld_safe --skip-grant-tables &
如果提示没有mysqld_safe,则使用如下命令:
>sudo mysqld --skip-grant-tables &
然后就可以正常登录了。
关于这个问题,D瓜哥还想再多说两句:这个错误的根本原因是没有找到mysqld.sock文件,造成这个问题的原因有两种:一根本没有创建这个文件,也就是没有启动数据库,这也是D瓜哥在这里介绍的原因;另外一个原因也有可能是创建的目录不在默认目录,或者连接数据库时指定的这个文件目录和实际产生的目录不符。D瓜哥在网上查资料时,也印着了这个猜测。部分网友的问题就是D瓜哥所说的第二个原因造成的。所以,网上对于这个问题的解决方案还存在另外一个方法。因为D瓜哥没有遇到,而且情况又比较多,D瓜哥这里就不再过多介绍了。请遇到这个问题的朋友自行查资料解决。
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
- 上一篇:MySQL内存使用之线程独享介绍
- 下一篇:MySQL load语句详细介绍