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      //表示只能本机访问,远程无法访问。

扫描二维码关注公众号,回复: 2590898 查看本文章

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:\Users\Windows7-64>net stop mysql

MySQL 服务正在停止.

MySQL 服务已成功停止。

C:\Users\Windows7-64>cd C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin

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

C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>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)\MySQL\MySQL Server 5.0\bin>net start mysql

MySQL 服务正在启动 .

MySQL 服务已经启动成功。

C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>mysql -uroot -proot

mysql>

猜你喜欢

转载自www.cnblogs.com/dailycode/p/9434356.html
今日推荐