连接远程数据库失败Access denied for user ‘root‘@‘xxx.xxx.xx.xxx‘

win10系统,连接远程数据库报错:Access denied for user 'root'@'xxx.xxx.xx.xxx'

代码都写完了,眼看着就要成功了,居然给我看这个???表示心塞…不过还好,在网上查了一会,最后成功解决了这个问题。

首先,在远程服务器上登录mysql:mysql -uroot -p

然后,输入命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'xxx.xxx.xx.xxx' IDENTIFIED BY 'woshimima' WITH GRANT OPTION;
此处需要强行解释一波… GRANT 权限 on 数据库名.表名 用户名@登录主机 identified by '用户密码';
ALL PRIVILEGES表示赋给远程登录用户所有权限,*代表全部数据库/表,此处root表示要授权的用户,@后面跟具体IP表示只允许该IP访问,跟 % 表示所有IP都可以访问,最后就是在IDENTIFIED BY后面设置登录的密码。(在连接远程数据库时,需要输入上面设置的用户名和密码)

最后,再输入一条命令:FLUSH PRIVILEGES;(大概是更新权限库吧…)

说实话具体的也不太懂,但是暂时是解决问题了,有时间的话我会好好研究的…

决定附上2个链接帮助大家理解一下,感谢这两位博主大哥…
详细参数讲解:https://www.cnblogs.com/gaogaoxingxing/p/6073699.html
举一反三型:https://www.cnblogs.com/jiyang2008/p/9016214.html

================================ 华丽分割线 ==================================
2021.11.17补充:
MySQL8.0不支持grant all privileges on *.* to 'user'@'%' identified by 'woshimima'这种写法。
可以先创建User:create user 'user'@'xxx.xxx.xx.xxx' identified by 'woshimima'';
再授权:grant all privileges on *.* to 'user'@'xxx.xxx.xx.xxx'; (授权完了甚至可以调用上面的flush命令?)
最后还可以删除(如果有需要的话):drop user 'user'@'xxx.xxx.xx.xxx';

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值