1. 创建用户
示例
CREATE USER user1@'localhost' IDENTIFIED BY 'QianFeng@123456';
验证
select * from mysql.user\G;
注释
CREATE 创建(关键字)
USER 用户(关键字)
user1 用户名称(自定义)
@ 分隔符(关键字)
‘localhost’ 允许登录的主机
IDENTIFIED BY 身份认证(关键字)
‘QianFeng@123456’ 用户密码
2. 删除用户
示例
DROP USER 'user1'@'localhost';
操作示例
select * from mysql.user\G;
drop user 'user1'@'localhost';
select * from mysql.user\G;
或者select user from mysql.user;
3. 修改用户密码
root修改自己密码
示例
# mysqladmin -uroot -p'123' password 'new_password'
前提是拥有系统权限
update也可以哦。不过比较复杂
UPDATE mysql.user SET authentication_string=password(‘new_password’) WHERE user=’root’ AND host=’localhost’;
FLUSH PRIVILEGES;
123为旧密码
示例2
SET PASSWORD=password('new_password');
FLUSH PRIVILEGES;
刷新权限
丢失root用户密码
1.前言
当root用户,忘记了密码。可以使用破解的方式来登录系统。修改密码。
原理:使系统在启动时,不加载密码文件。
2.修改mysql启动设置
# vim /etc/my.cnf
[mysqld]
skip-grant-tables
3.重启mysql,无密码登录
重启mysql程序
# systemctl restart mysqld
无密码登录
# mysql -uroot
修改自己的密码
mysql>UPDATE mysql.user SET authentication_string=password('QianFeng@123456789') where user='root' and host='localhost';
mysql> FLUSH PRIVILEGES;
4.修改mysql启动设置
注释掉跳过密码
4. 登录MySQL
mysql -P 3306 -u root -p123 mysql -e ‘show tables’
-h 指定主机名 【默认为localhost】
-P MySQL服务器端口 【默认3306】 大P
-u 指定用户名 【默认root】
-p 指定登录密码 【默认为空密码】
此处mysql为指定登录的数据库
-e 接SQL语句
示例
免登录查询数据库
mysql -uroot -p'QianFeng@123' -hlocalhost -P 3306 mysql -e 'show tables'
mysql权限原理
语法格式
grant 权限列表 on 库名.表名 to '用户名'@'客户端主机' [identified by '密码' with option参数];
==权限列表
all: 所有权限(不包括授权权限)
select,update 查询更新
==数据库.表名
*.*
所有库下的所有表
web.*
web库下的所有表
web.stu_info
web库下的stu_info表
grant SELECT (id), INSERT (name,age) ON mydb.mytbl to 'user8'@'localhost' identified by 'QianFeng@123';
Column level
==客户端主机
%
所有主机
192.168.2.% 192.168.2.0网段的所有主机
192.168.2.168 指定主机
localhost 指定主机
==with_option参数
GRANT OPTION
授权选项
mysql权限示例
赋予权限
授权目标
授予admin3 对bbs库 所有的表,具有所有权限(不包含授权)
GRANT ALL ON bbs.* TO admin3@'%' IDENTIFIED BY 'QianFeng@13910604684';
赋权示例
1.准备测试账户
root账户创建
CREATE USER admin3@'%' IDENTIFIED BY 'QianFeng@123';
2.授权账户
root账户授权
GRANT ALL ON bbs.* TO admin3@'%' IDENTIFIED BY 'QianFeng@13910604684';
3.使用测试账户操作数据库
[root@localhost ~]# mysql -uadmin3 -p'QianFeng@123'
mysql> create database bbs;
试试创建别的库
mysql> create database bba;
ERROR 1044 (42000): Access denied for user 'admin3'@'%' to database 'bba'
进入bbs库,创建数据表和插入数据。
授权验证完毕
回收权限
查看权限
查看自己的权限
SHOW GRANTS\G
查看别人的权限
SHOW GRANTS FOR admin3@'%'\G
回收权限REVOKE
语法
REVOKE 权限列表 ON 数据库名 FROM 用户名@‘客户端主机’
示例
REVOKE ALL PRIVILEGES ON bbs.* FROM admin3@’%’; //回收所有权限
删除用户的版本问题
5.6之前,先 revoke all privilege 再 drop user
5.7之后,直接 drop user