解决Mysql8的远程权限问题
mysql版本8及以上的,对于出现以下的情况时,
Access denied for user 用户名@% to database 数据库名
需要使用
#先创建一个用户 create user 用户名@% identified by 123456; #再进行授权 grant all privileges on *.* to 用户名@% with grant option;
的方式来更改对应的用户权限;
而mysql版本8以下的则使用
mysql> grant all privileges on *.* to 用户名@% identified by 123456;
的方式来更改权限;
并且重要的是,更改权限时,必须要使用权限更高的用户,比如root@localhost这种之下,再使用上述的命令语句,不然就会出现以下报错:
Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation
而使用高权限的用户进行命令语句操作时就可以正确执行:
mysql> grant all privileges on *.* to 对应的用户名@% with grant option; Query OK, 0 rows affected (0.03 sec)
再刷新权限就OK了:
mysql> flush privileges; --执行结果如下: Query OK, 0 rows affected (0.01 sec)
再切换到你已经改好权限的用户,在这个用户里创建你需要的数据库就行了:
--创建数据库 mysql> create database `JPJ`; Query OK, 1 row affected (0.01 sec) --使用这个数据库 mysql> use JPJ; Database changed
关于登录上mysql,我选择使用cmd命令来操作:
#先找到你的电脑的mysql应用程序的当前目录:以下为我的举例: C:Users>cd Program FilesMySQLMySQL Workbench 8.0 #再使用下列方式来登录你的mysql账号: C:UsersProgram FilesMySQLMySQL Workbench 8.0 mysql -u 你的用户名 -p #退出当前mysql用户的方式: mysql> exit;
注:以上内容仅出于解答个人疑问的原因而写,若有错误存在,还望各位大佬纠正!
2021-11-23 晚作
下一篇:
数据库分区、分表、分库