遇到问题:按照MySQL5.6版本之前的语句对MySQL5.7版本执行创建数据库、添加用户并对用户授权操作后,有可能该授权用户只能连接到数据库,但是执行不了任何操作,更是创建不了数据表。
解决问题:通过测试,发现在MySQL5.7版本中,可能要授权用户对所有数据库有SUPER权限,否则可能该授权用户只能连接数据库并不能执行任何操作。
数据库名称:mydb
数据库用户名:mydbuser
数据库密码:123456
Create DATABASE IF NOT EXISTS mydb default charset utf8 COLLATE utf8_general_ci; #创建数据库
#MySQL5.7版本建议先创建用户,再给用户进行授权操作。
CREATE USER 'mydbuser'@'localhost' IDENTIFIED BY '123456'; #创建用户
CREATE USER 'mydbuser'@'127.0.0.1' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON mydb.* TO mydbuser@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION; #授权用户
GRANT ALL PRIVILEGES ON mydb.* TO mydbuser@'127.0.0.1' IDENTIFIED BY '123456' WITH GRANT OPTION; #授权用户
#MySQL5.7版本中如果对用户授权后只能连接数据库并无任何操作权限,请设置用户对所有数据库有SUPER权限
grant SUPER on *.* to 'mydbuser'@'localhost' ; #授予用户对所有数据库有SUPER权限
grant SUPER on *.* to 'mydbuser'@'127.0.0.1' ;
flush privileges; #刷新系统授权表
至此,MySQL5.7版本下创建数据库添加用户并对用户进行授权完成。