lujiguo115 发表于 2018-9-27 12:30:59

MySQL(mysql 5.7)用户密码的管理

  数据库是信息系统中非常重要的一个环节,合理高效的对其进行管理是非常重要的工作。通常由管理员创建不同的管理账户,然后给予不同的操作权限,把这些账户交给相应的管理人员使用。
  在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'>
//创建新用户’zhangsan‘允许在本地登陆(可以更改为其他的IP地址)密码为123123
[*]密文添加新用户  

mysql> select password ('123123');//生成密文字符串  
+-------------------------------------------+
  
| password ('123123')                     |
  
+-------------------------------------------+
  
| *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |
  
+-------------------------------------------+
  
1 row in set, 1 warning (0.01 sec)

  
mysql> create user 'lisi'@'localhost'>  //密文创建新用户

[*]查询新添加的用户  

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;    //刷新,刷新之后方能使用新密码登陆系统



页: [1]
查看完整版本: MySQL(mysql 5.7)用户密码的管理