- 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";
# version >= 8.0
# alter user 'username'@'%' identified with mysql_native_password by 'password';
flush privileges;
- 4.删除用户
delete from mysql.user where User="test" and Host="localhost";
# version >= 8.0
# drop user 'username';
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
)
2022年05月07日更新
- mysql 8账户管理
# 添加账户
create user '<用户名>'@'%' identified by '<密码>';
# 修改密码
alter user '<用户名>'@'%' identified by '<新密码>';
# 删除账户
drop user '<用户名>'@'%';
# 权限授予
grant select on <库名>.* to '<用户名>'@'%';
# 刷新权限
flush privileges;