vlambda博客
学习文章列表

mysql重置密码与用户管理相关

一、mysql数据库重置密码的方法。

当我们忘记mysql数据库root账号的密码时,可以重置密码。

1. vim /etc/my.cnf。

2. 在my.cnf配置文件中加上"skip-grant-tables"。

3. 重启mysql服务端:systemctl restart mysqld。

4. 执行update mysql.user set authentication_string=password('密码') where      user='root';

5. 修改root的密码后,vim /etc/my.cnf,把加的"skip-grant-tables"去掉。

6. 重启mysql服务,然后就可以使用连接命令连接mysql了。


二、mysql数据库新建用户、权限管理、以及删除用户。

  1. 权限控制安全准则。

  • 只授予能满足需要的最小权限,防止用户执行危险操作。

  • 限制用户远程登录主机。

  • 禁止或删除没有密码的用户。

  • 定期清理无效的用户,回收权限或者删除用户。

2. 创建账号并授予权限。

  • 数据库版本在8.0之前的版本。

    grant all privileges on *.* to '用户名'@'ocalhost' identfied by '密码' with grant option;

    grant:授予。

    all privileges:所有的权限,也可以指定select、insert、update、delete、create、drop、index等十四种权限。

    *.*:所有数据库里的所有表。

    '用户名'@'localhost':只允许本机登录。

    identfied by:设置密码。

    with grant option:它的权限可以向下传递。

3. 查看权限。

  • show grants;

  • show grants for 'username’@‘localhost';查看tester用户的权限

4. 回收权限。

  • revoke all privileges on *.* from 'username'@'localhost';

  • revoke grant option on *.* from 'username'@'localhost';

5. 修改权限。

  • grant privileges on databasename.tablename to 'username'@'host';

  • grant select, insert on databasename.tablename to 'username'@'%';

6. 删除权限。

  • use mysql;

  • select host, user from user;

  • drop user '用户名'@'localhost';

  • 或者:delete from user where user = '用户名' and host = 'localhost';

7. 创建一个可远程连接的用户。

  • grant all privileges on *.* to '用户名'@'%' identified by '密码' with grant option;

8. 修改一个已有的用户让他可以远程连接。

  • use mysql;

  • update user set host = '%' where user = '用户名';

9. 刷新权限。

  • flush privileges;

10. 如果/etc/my.cnf配置文件中加了以下命令,则只允许本机登录。

  • bind-address=127.0.0.1