Mysql设置远程访问

1.mysql8.0之前版本设置远程访问

# 授权所有主机都可以通过root用户,密码123456,进行访问数据库
# 123456:给新增权限用户设置的密码
# %:代表所有主机,也可以具体到主机ip地址

# 适用于 MySQL 8.0之前的版本,可以直接授权
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

#刷新权限
flush privileges;

2.mysql8.0包括之后版本设置远程访问

# 授权所有主机都可以通过root用户,密码123456,进行访问数据库
# 123456:给新增权限用户设置的密码
# %:代表所有主机,也可以具体到主机ip地址
# MySQL 8.0之后的版本,需要先创建一个用户,再进行授权

create user root@'%' identified by '123456';
grant all privileges on *.* to root@'%' with grant option;


#刷新权限
flush privileges;

注:操作完后需刷新权限,不然以上命令不生效

#刷新权限
flush privileges;

3.mysql8版本开通远程访问,使用8版本之前的命令会遇到的问题

1. 使用8版本之前的开通远程访问命令会出现的情况

报错: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 'IDENTIFIED BY '123456' WITH GRANT OPTION' at line 1

原因:8版本后需先创建一个用户再进行授权

2.此时再操作8版本之后的开通远程访问命令还会报错

 报错:ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'%'

 原因:在grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;这个命令中mysql已创建了此用户但是授权的命令并未生效

解决:

1.可以直接对创建好了的root用户进行授权操作执行此命令:grant all privileges on *.* to root@'%' with grant option;

2.删除创建的用户再重新按照8版本之后的开通远程访问命令操作

#删除用户
drop user root@'%';

#开通远程访问(8版本后)
#创建用户
create user root@'%' identified by '123456';
#授权远程访问
grant all privileges on *.* to root@'%' with grant option;

#刷新权限
flush privileges;

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值