`
edisonlv2010
  • 浏览: 42947 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Host 'xxx' is not allowed to connect to this MySQL server

 
阅读更多
在安装MySQL的过程中,在输入访问密码的界面里有一个单选项(截图附后),此单选项的意思就是是否允许远程访问root。如果没有勾选此项的话,MySQL默认在mysql.user表里会创建一条记录,该记录的user列值为root,host列值为localhost。

此时如果不是在安装MySQL数据库的本机访问MySQL(即远程访问),将会报错,错误提示信息如本博客标题所示范。

有两种方法可以解决此错误,但推荐如下方法。

授权法。授权的同时会创建一个用户。

如,你想通过test_user从任何主机连接到MySQL服务器,连接的同时需要使用sqlpass进行密码认证。

GRANT ALL PRIVILEGES ON *.* TO 'test_user'@'%' IDENTIFIED BY 'sqlpass' WITH GRANT OPTION;
FLUSH PRIVILEGES;


以上命令建立了一个名为test_user的用户,并被授予了最高权限

如,你想通过zhangsan从指定的IP地址(192.168.1.3)连接到MySQL服务器,连接的同时需要使用test_pass进行密码认证

GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'192.168.1.3' IDENTIFIED BY 'test_pass' WITH GRANT OPTION;
FLUSH PRIVILEGES;


限定IP这种做法可以提高MySQL的安全性,部署时推荐使用,只允许应用服务器访问数据库服务器



附属命令:

//查看用户
USE mysql;
SELECT user, host FROM user; --查看当前用户表信息


//删除用户
DELETE FROM user WHERE user='test' AND host='localhost';
  • 大小: 29.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics