提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
 - 一、数据库的备份与还原
 - 1 使用命令行
 - 2 使用图形化工具
 
- 二、DCL 管理用户、授权
 - 1 管理用户
 - (1)查询用户
 - (2)创建用户
 - (3)删除用户
 - (4)修改用户密码
 - (5)mysql中忘记了root用户密码怎么办?
 
- 2 用户权限授予
 - (1)查询某个用户权限
 - (2)授予某个用户某些权限
 - (3)撤销某个用户某些权限
 
前言
一、数据库的备份与还原
1 使用命令行
- 命分行: 
- 语法 
- 备份: mysqldump -u用户名 -p密码 数据库名 > 保存的路径(.sql文件)
 - 还原:
1.登录数据库
2.创建数据库
3.使用数据库
4.执行文件 source 文件路径 
 
 - 语法 
 
备份:

 看一下备份的.sql里面有什么?
 
 可以看到里面的其实就是将数据库里面的表重新创建并插入数据。
 所以这种恢复数据库的方式,需要我们重新创建数据库才行
恢复:
 
 这样就恢复了。
2 使用图形化工具
- 图形化工具:
这个就比较简单了,但是恢复同样要先创建数据库
备份:

 

 恢复:
 同样要先将数据库创建出来
 

二、DCL 管理用户、授权
DBA:数据库管理员
1 管理用户
(1)查询用户
查询用户:MySQL的用户在mysql数据库下的user表中,我们直接查询这张表就可以了
- 1 切换到mysql数据库
USE myql; - 2 查询user表
SELECT * FROM USER; 
-- 1 切换到mysql数据库
use mysql;
-- 2 查询user表
select * from user;
 

 解释:
 (1)其中root就是我们的根用户,Host指定的是允许登录的主机ip,如果是%就表明运行在任意ip登录
 (2)其余三个账号是就不用管了,本来就有的。
 (3)在表中用户password是加密的,所以我们看不到
(2)创建用户
我们不能直接往user表中insert数据,应该使用专门的创建用户语法
- 语法: CREATE USER ‘用户名’@‘地址’ IDENTIFIED BY ‘密码’;
 
-- 创建一个zhangsan用户,密码111111
create user 'zhangsan'@'localhost' identified by '111111';
-- 创建一个lisi用户,密码123
create user 'lisi'@'%' identified by '123';  -- 其中统配符 % 表示可以在任意ip主机上使用这个账户登录-- 2 查询user表
select * from user;
 

 cmd中也能用lisi用户登录:
 
(3)删除用户
- 语法:DROP USER ‘用户名’@‘主机名’;
 
-- 删除'zhangsan'@'localhost'用户
drop user 'zhangsan'@'localhost';
-- 删除'lisi'@'%'用户
drop user 'lisi'@'%';
 
(4)修改用户密码
- 语法: ALTER USER ‘username’@‘host’ IDENTIFIED BY ‘new_password’;
根据mysql版本不同,这个语法也有些不同
当然,这个连root用户密码都可以这样修改 
-- 修改 'lisi'@'%' 用户的密码为666666
ALTER USER 'lisi'@'%' IDENTIFIED BY '666666';
 

(5)mysql中忘记了root用户密码怎么办?
这个就有点麻烦了,这里就不演示了,直接参考视频
- step1:cmd --> net stop mysql
停止mysq1服务
需要管理员权限运行该cmd - step2:使用无验证方式启动mysql服务: mysqld --skip-grant-tables
 - step3:打开一个新的cmd窗口,直接输入mysql命分,敲回车。就可以登录成功
 - step4:use mysql;
 - step5:update user set password = password(‘你的新密码’) where user =‘root’;
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new_password’;
ALTER USER ‘root’@‘%’ IDENTIFIED BY ‘new_password’;
这个根据你有没有%这种所有ip都能访问的root账号选择(所以这个很麻烦),通常情况下mysql只会给你创建一个’root’@‘localhost’,但也说不定
这个就是上面修改用户密码,有好几种语法·,根据mysql的般本不同有的可能不行了,多找几个试试 - step6:关闭两个窗口
 - step7:打开任务管理器,手动结束mysqld.exe 的进程
 - step8:启动mysql服务
 - step9:使用新密码登录。
 
2 用户权限授予
参考视频
(1)查询某个用户权限
- 语法:SHOW GRANTS FOR 用户名;
 
-- 查询 ‘lisi’@‘%’ 用户的权限
show grants for 'lisi'@'%';
 

 可以看到只有一个usage(登入)的权限
-- 查询root用户的权限
show grants for 'root'@'localhost';
 

 可以看到root有所有的权限,select,insert等等
(2)授予某个用户某些权限
- 语法: grant 权限列表 on 数据库名.表名 to ‘用户名’@‘主机名’;
可以使用通配符,看下面例子 
-- 给 'lisi'@'%' 用户授予查询db01.tb_emp表的权限
grant select on db01.tb_emp to 'lisi'@'%';
-- 给 'lisi'@'%' 用户授予查询db01下所有表的权限
grant select on db01.* to 'lisi'@'%';-- 给 'lisi'@'%' 用户授予查询,插入,更新,删除db01.tb_emp表的权限
grant select,insert,update,delete on db01.tb_emp to 'lisi'@'%';-- 给张三用户授予所有权限,在任意数据库,在任意表上,想当于root权限
grant all privileges on *.* to 'zhangsan'@'localhost';
 
(3)撤销某个用户某些权限
- 语法:revoke 权限列表 on 数据库名.表名 from ‘用户名’@‘主机名’;
 
-- 撤销 'lisi'@'%' 用户对db01.tb_emp表的查询权限
revoke select on db01.tb_emp from 'lisi'@'%';-- 撤销 'lisi'@'%' 用户对db01.tb_emp表的所有权限
revoke all privileges on db01.tb_emp from 'lisi'@'%';-- 撤销;’zhangsan'@'localhost'用户的所有权限, 撤销后,只会剩下USAGE登入权限
revoke all privileges on *.* from 'zhangsan'@'localhost';
