mysql用户与授权

  • 1.创建用户
insert into mysql.user(Host,User,Password) values("localhost","test",password("123456"));
  • 2.用户授权
权限 on 数据库.* to 用户名@登录主机 identified by "密码";

grant all privileges on testDB.* to test@localhost identified by "123456"; //all privileges 所有权限

注:授权test用户拥有testDB数据库的所有权限(指定数据库的所有权限) | @"%"表示对所有非本地主机授权,不包括localhost(127.0.0.1)

flush privileges; //刷新系统权限表
grant select,update,create,drop,delete on testDB.* to test@"%" identified by "123456";

注:授权test用户拥有对testDB数据库select,update,create,drop,delete权限(指定数据库的部分权限)

  • 3.修改用户密码
update mysql.user set Password = password("新密码") where User = "test" and Host = "localhost";
flush privileges;
  • 4.删除用户
delete from mysql.user where User="test" and Host="localhost";
flush privileges;

2020.09.07更新


mysql 5.7以后,增强了密码管理,安装时不再会有密码设置框。(linux) 设置初始密码,需要运行:

  • 步骤1
# 一定要使用sudo运行,然后按照提示,依次进行设置。
sudo mysql_secure_installation
  • 步骤2
# 一定要用sudo 运行,然后输入上一步设置的密码,进入数据库。
sudo mysql -uroot -p 
  • 步骤3
# 修改mysql的密码验证插件
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin IN ('unix_socket', 'auth_socket');

# 刷新权限就生效了
FLUSH PRIVILEGES;

注意

1.以上操作请不要用于生产环境。

2.如果只是设置密码,按照步骤1操作即可,若要解决非sudo命令连接数据库(mysql workbench类的数据库软件无法连接),就需要做完3个步骤。

3.此操作在linux环境下验证通过。(mysql Ver 15.1 Distrib 10.1.37-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2)