MySQL用户管理+MySQL权限管理
我们现在默认使用的都是root用户,超级管理员,拥有全部的权限!
但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库!
所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库!
一.创建用户
1 -- 创建用户 2 -- 在mysql中所有的用户都在mysql的user表里面, 3 -- 其中有三个比较重要的字段 4 user 5 host 6 password (老版本加密是md5加密,新版本是sha1加密 7 使用password函数加密!) 8 9 -- 创建用户的语法 10 create user '用户名' [@'主机地址'] identified by '密码'; 11 /* 12 其中: 13 用户名: 用户登录的名字 14 主机地址: 是允许用户登录的IP地址,不写的话,就代表允许所有的IP地址 15 密码: 用户登录的密码 16 */ 17 -- 创建用户 18 -- 只给本机访问的用户 19 create user 'test1'@'localhost' indentified by '123456'; 20 21 -- 局域网(一个网段)访问的用户 22 create user 'test2'@'192.168.96.%' identified by '123456'; 23 24 -- 全网访问的用户 25 create user 'test3'@ indentified by '123456'; 26 27 28 -- 删除用户 29 drop user test3;
用户创建之后,基本没什么权限!
2. 用户管理——权限管理
1 -- 语法规则如下: 2 -- 给用户分配权限 3 grant 权限列表 on 数据表[.数据表] to '用户名' [@'主机地址']; 4 5 -- 给test2用户分配权限 6 grant select,update,insert on php2017.php_student to 'test2'@'192.168.96.%'; 7 -- 给所有权限给用户qinpeizhou 8 GRANT ALL PRIVILEGES ON *.* TO 'qinpeizhou'@'%' IDENTIFIED BY '123456';
9 --回收权限 10 -- 语法形式: 11 -- 回收权限 12 revoke 权限列表 on 数据库[.数据表] from '用户名' [@'主机地址']; 13 14 revoke update,insert on php2017.php_student from 'test2'@'192.168.96.%';
三.用户管理——密码管理
1 修改root密码 2 一般有以下的两种方法: 3 1.通过mysqladmin客户端修改 4 mysqladmin 客户端通过用于执行一些管理性的工作,比如显示服务器的状态,修改root用户的密码等 5 6 语法形式: 7 -- 修改root用户密码 8 mysqladmin -uroot -p password 新密码 -- 新密码不需要加上引号 9 10 mysqladmin -uroot -p password hahahh 11 12 13 2.先登录到服务器后,直接使用以下的命令: 14 set password= password('新密码'); -- 加密 15 16 注意:该方法同样适用于其他的普通用户 17 set password = password('123456'); 18 19 20 21 root 修改普通用户的密码: 22 23 有很多种方式,最常见的: 24 -- root 修改普通用户的密码 25 set password for '用户名'[@'主机地址'] = password('新密码'); 26 27 set password for 'test2' @'192.168.96.%' = password('123456'); 28 29 30 root 密码找回: 31 --1.停止MySQL服务器 32 net stop mysql 33 --2.进入mysql安全模式,即不用输入密码就能进入数据库 34 mysqld -nt --skip-grant-tables 35 --3.重新打开一个cmd窗口,以空密码形式登录MySQL服务器 36 mysql -uroot -p 37 --4.执行以下命令修改root用户的密码 38 update mysql.user set password = password('新密码') where user = 'root'; 39 40 update mysql.user set password = password('123456888') where user = 'root'; 41 42 --5.刷新权限 43 flush privileges; 44 --6.退出 45 quit ; 46 --7.重启MySQL服务器,现在内存中结束mysqld进程,然后再重启 47 48 /* 49 注意: 50 安全模式下:是服务器最危险的时候,任何人都可以以空密码的形式进入到服务器里面,而去都是超级管理员root的权限! 51 安全模式只能本机才能开启 52 53 */