Java null, message from server: “Host ‘xxx‘ is not allowed to connect to this MySQL server“文件解决

报错原因:
root用户只能使用localhost连接,不能使用局域网或外网IP连接。
解决办法:
一、方法一,改表

  1. 进入mysql,选择数据库。
  2. 输入 update user set host=’%’ where user=‘root’;,修改root用户的权限范围。
  3. 输入flush privileges;,将权限更新操作刷新到内存中。
    在这里插入图片描述
    如果这个方法不行,可以用下面这种方法。

二、方法二,授权

  1. 创建用户
    创建user01,只能本地访问
    create user user01@‘localhost’ identified by ‘password’;
    创建user02,可以远程访问
    create user user02@’%’ identified by ‘password’
  2. 修改用户密码
    以user01为例:
    set password for ‘user01’@‘localhost’=password(‘anotherpassword’)
  3. 授权
    授予user01管理test的全部权限
    grant all privileges on test.* to user01;
    授予user02查看权限,并修改密码
    grant select on . to ‘user02’@’%’ identified by ‘anotherpassword’;
    授予所有权限
    GRANT ALL PRIVILEGES ON . TO zhangsan@"%" IDENTIFIED BY “lisi”;

三、方法三,设置mysql允许远程连接(ubuntu系统)

  1. sudo vi /etc/mysql/my.cnf
  2. 注释掉如下两行:
    bind-address=127.0.0.1
    skip-network(mysql5.6版本里没有这行)
  3. sudo service mysql restart
    结合一中的授权,被授权用户可以远程访问
    如果mysql远程访问没有开启,其它通过远程访问如django,mysql客服端均出现如下提示:
    Mysql ERROR 1698 (28000) ,特此记录一下
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值