最近忙着做毕设的东西,用到了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这一行注释掉就好了。