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 Files\MySQL\MySQL Workbench 8.0
#再使用下列方式来登录你的mysql账号:
C:\Users\Program Files\MySQL\MySQL Workbench 8.0\ mysql -u 你的用户名 -p
#退出当前mysql用户的方式:
mysql> exit;
注:以上内容仅出于解答个人疑问的原因而写,若有错误存在,还望各位大佬纠正!
2021-11-23 晚作