Mysql 权限检查

Posted dailycode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 权限检查相关的知识,希望对你有一定的参考价值。

权限检查

       权限存储在mysql库的user, db, tables_priv, columns_priv, and procs_priv这几个系统表中,待MySQL实例启动后就加载到内存中。

       用户信息存储在mysql.user表。安装时默认只有超级用户root(如果不创建匿名用户)。

 

mysql> desc mysql.user;

+------------------------+-----------------------------------+------+-----+----------

| Field                  | Type                              | Null | Key | Default

+------------------------+-----------------------------------+------+-----+----------

| Host                   | char(60)                          | NO   | PRI |

| User                   | char(32)                          | NO   | PRI |

       host+user复合主键。允许访问的客户端+用户名称。所以同名称是允许的。

Host: localhost      //表示只能本机访问,远程无法访问。

User: root

 

       创建用户

方法1,直接root创建。不推荐。

方法2,专门创建指令,需要赋予权限。

create user ‘username‘@‘%‘ identified with mysql_native_password by ‘password‘;  //%表示允许任何客户端访问。

create user username;  //允许任何客户端无密码访问。

 

       赋予权限

grant all privileges on *.* to ‘username‘@‘%‘;  //此人成神。权限详情百度。

 

修改用户密码

set password for ‘username‘@‘%‘ = password(‘password‘);

update mysql.user set password = password(‘password‘) where user = ‘username‘ and host = ‘host‘;

 

删除用户

drop user ‘username‘@‘host‘;

 

忘记root密码

C:UsersWindows7-64>net stop mysql

MySQL 服务正在停止.

MySQL 服务已成功停止。

C:UsersWindows7-64>cd C:Program Files (x86)MySQLMySQL Server 5.0in

C:Program Files (x86)MySQLMySQL Server 5.0in>mysqld.exe --skip-grant-tables   //跳过验证登陆,满权限,非常危险,你懂的。

C:Program Files (x86)MySQLMySQL Server 5.0in>mysql

mysql> update mysql.user set password=password(‘root‘) where user=‘root‘ and host=‘localhost‘;

Query OK, 1 row affected (0.03 sec)

Rows matched: 1  Changed: 1  Warnings: 0

       杀进程mysqld.exe

C:Program Files (x86)MySQLMySQL Server 5.0in>net start mysql

MySQL 服务正在启动 .

MySQL 服务已经启动成功。

C:Program Files (x86)MySQLMySQL Server 5.0in>mysql -uroot -proot

mysql>

 

以上是关于Mysql 权限检查的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 用户与权限管理

MySql-权限管理

我的MYSQL学习心得(十三) 权限管理

linux 连接mysql没有权限

mysql有关权限的表都有哪几个

mysql权限