Mysql 开启远程访问权限(ERROR 1064 (42000): You have an error in your SQL syntax;

Mysql 开启远程访问权限失败,怎么处理?

想必大家配置好服务器Mysql后,本地连接远程数据库后发现连接失败。
大致原因:是服务器数据库设置只能服务器访问,无法通过其他IP进行访问。
所以,我们需要把访问设置为所有IP均可通过账户密码进行访问(可将Host设置为‘%’,但是这样很危险,不建议)。

具体方法如下:

方法一:

  1. 在服务器里,我们管理员运行cmd,然后输入
    mysql -u root -p
  2. 输入完毕后,就会提示我们输入密码,这时候我们输入数据库密码,如图所示:
    输入数据库密码
  3. 我们输入我们的密码后,当你看到这个界面,说明数据库登录成功(如果不成功,检查数据库用户名和密码是否正确):
    数据库登录成功
  4. 这个时候,我们就要输入以下内容:
GRANT ALL PRIVILEGES ON *.* TO '数据库用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
  1. 输入完毕后,执行刷新权限即可:
flush privileges;

不过需要注意的点,语句后面的分号不能丢掉。

当然,很多朋友可能会问,为什么我输入第四步后,报错了,报错内容如下:

ERROR 1064 (42000): 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 'ident
ified by '密码' with grant option' at line 1

原因就是Mysql 8.0以后,都不能这样输入,不适用于。应该按照以下方法来操作:

方法二:

  1. 步骤同方法一的1,2,3 都需要先登录进去
  2. 接下来输入:
create user 'root'@'%' identified by '密码';
grant all on *.* to 'root'@'%';
alter user 'root'@'%' identified with mysql_native_password by '密码';

每条输入完,都执行一次。当三条都输入完后,是这样的:
完成
出现Query OK 0 rows affected 即代表执行成功

  1. 当上述三条都输入完毕后,我们刷新权限即可正常使用。
flush privileges;

最后,当我们都成功执行刷新完毕后,就可以重新发起连接,不需要重启服务器。

提示:
1.如果方法二的第一条语句执行失败,那就drop root,重新create就行

最后,如果有不正之处,欢迎批评指正。感谢您的浏览,祝各位看官老爷早日成为心中的大佬!!

  • 41
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值