MySQL设置允许指定IP远程连接

直接上最终完整代码

CREATE USER 'root'@'yourIP';
ALTER USER 'root'@'yourIP' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'yourIP' WITH GRANT OPTION;
flush PRIVILEGES;

因为不是数据库方向的,短短几句代码也折腾了很久。发出来希望可以帮助有需要的人。这里重点就是第二句。很多文档可能是这样写的:

CREATE USER 'root'@'yourIP' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'yourIP' WITH GRANT OPTION;
flush PRIVILEGES;

这样写并不是说就错了,而是我用了不成功。这里涉及一个小知识点,mysql8 之前的版本中,加密规则默认是mysql_native_password;而在mysql8之后,加密规则是caching_sha2_password。因此,如果你本地和远程的MySQL版本不一致,或者像我一样使用的是较老版本的Navicat for MYSQL,就会出现无论怎么输密码就是登录不了。客户端工具会提示密码错误或者尝试升级版本。

密码不会明文存在数据库,会进行加密。如果加密方式不同,即使输入相同,最终结果肯定是不一致的。因此针对高版本MySQL,你需要指定加密方式为:mysql_native_password

                           

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值