MySQL8.0.13 - 配置外网访问时 right syntax to use near 错误的解决办法

MYSQL8配置外网访问

在新版本MYSQL8中,配置外网访问授权用户的方式有所不同,可能会遇到以下错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '连接密码' WITH GRANT OPTION' at line 1

本文记录下来,防止以后再次踩坑。正确的做法如下(已亲测):

  • 1、首先使用root用户输入密码后登录:mysql -uroot -p
  • 2、切换数据库为 mysql:use mysql;
  • 3、查询用户和对应的主机信息,将 roothost 修改为%:先执行 select user,host from user; 进行查询,返回结果如下所示:
    ±-----------------±----------+
    | user | host |
    ±-----------------±----------+
    | mysql.infoschema | localhost |
    | mysql.session | localhost |
    | mysql.sys | localhost |
    | root | localhost |
    ±-----------------±----------+

可以看出,root用户对应的主机是 localhost,也就是本机访问,我们要做的目标是实现外网访问,因此需要修改 root 对应的 host 为 %,执行以下命令(如果 root 对应的 host 已经是 %,则不需要执行):
update user set host = '%' where user = 'root';
flush privileges;

4、再次查询用户和对应的主机信息:select user,host from user;,返回结果如下所示:
±-----------------±----------+
| user | host |
±-----------------±----------+
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
±-----------------±----------+

可以看出我们已经修改成功,接下来只需要授权就可以了。

5、执行语句:grant all privileges on *.* to 'root'@'%';
6、正常情况下,不需要重启MYSQL(亲测),就已经可以外网访问了,可以通过 navicat 等工具进行测试。如果 MYSQL是在阿里云服务器,那么还需要配置服务器的安全组,开放3306端口,才能进行外网访问。具体怎么配置?在阿里云服务器控制台中,找到服务器,再找到网络和安全 -> 安全组,按照样例进行配置即可。

相关推荐
©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值