数据库是信息系统中非常重要的一个环节,合理高效的对其进行管理是非常重要的工作。通常由管理员创建不同的管理账户,然后给予不同的操作权限,把这些账户交给相应的管理人员使用。 在mysql数据库中,所有的用户信息都被保存在mysql库的user表中

mysql> use mysql;
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
|··· //省略部分表           |
| user                      |
+---------------------------+
31 rows in set (0.00 sec)

管理管理用户

通过对user表的添加、修改、删除可以管理mysql的用户,使用CREATE创建新用户,DROP删除用户,SET修改用户密码。

用户的添加、删除

  • 明文添加新用户
create user 'zhangsan'@'localhost' identified by '123456';
//创建新用户’zhangsan‘允许在本地登陆(可以更改为其他的IP地址)密码为123123
  • 密文添加新用户
mysql> select password ('123123');  //生成密文字符串
+-------------------------------------------+
| password ('123123')                       |
+-------------------------------------------+
| *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |
+-------------------------------------------+
1 row in set, 1 warning (0.01 sec)
mysql> create user 'lisi'@'localhost' identified by password '*E56A114692FE0DE073F99A1DD6
          //密文创建新用户
  • 查询新添加的用户
select user,authentication_string,host from user;   //查询user表中的用户、密码、主机三列数据

  • 删除用户
drop user 'zhangsan'@'localhost';

用户密码修改

  • 使用SET命令修改用户密码
set password=password('123123');  //修改当前登陆用户密码
set password for 'lisi'@'localhost'=password('123456');  //修改其他用户密码

遗忘root密码的解决方法

  • 先关闭正在运行中的MySQL进程
systemctl stop mysqld.service 
netstat -ntap | grep 3306     //查询不到3306端口信息,则表示mysql进程已结束
killall mysqld     //**如果正常的停止命令无法关闭进程,则可使用该命令

  • 使用跳过user表验证的方式登陆
mysqld --skip-grant-tables   
  • 更改密码 输入上一条命令后重新打开新的终端登陆
mysql -u root   //新终端登陆
update mysql.user set authentication_string=password('abcabc') where user='root';
//更改用户表(user)中的密码项
flush privileges;    //刷新,刷新之后方能使用新密码登陆系统