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 权限检查的主要内容,如果未能解决你的问题,请参考以下文章