最近忙着做毕设的东西,用到了mysql存储一些系统元数据,在使用系统ip地址连接的时候出现错误,但是使用localhost连接mysql却没有问题。
错误信息:Communications link failure,Last packet sent to the server was 0 ms ago.
最初想到的是授权问题,即授权制定的数据库有远程访问权限。有两种方法:
1)采用改表法
mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'ssj';
mysql>select host, user from user; 2)授权法
GRANT ALL PRIVILEGES ON CloudBus.* TO 'ssj'@'%'; //CloudBus是我的数据库名称,ssj是我的mysql用户名
FLUSH PRIVILEGES; 然而授权法根本没有用,而改表法则提示user表中已经有了这条记录。那么这个原因究竟是在哪里呢?经过网上一番查找,才发现原来是mysql配置文件的问题。 修改mysql的配置文件my.cnf(WINDOWS下面应该是my.ini),将bind-address=127.0.0.1这一行注释掉就好了。
本文探讨了在MySQL中遇到的远程访问权限问题,并详细解释了两种解决方案:改表法和授权法。最终发现,问题出在MySQL配置文件中bind-address设置为127.0.0.1。通过修改配置文件,注释掉该行即可解决远程访问问题。
9823

被折叠的 条评论
为什么被折叠?



