MySQL的管理与维护(第十三章)

1.数据库的用户管理

Mysql的用户管理
Mysql用户管理的相关内容
权限表
各个权限表的作用1
各个权限表的作用2
账户管理
CREATE USER创建用户语法
CREATE USER创建用户案例

-- 创建带密码的用户名
create user 'rose'@'localhost' identified by 'rosepwd';
-- 创建不带密码的用户名
create user 'rose01'@'localhost';

结果:
使用create创建用户
上面创建的用户都是带明文的密码,也可以创建密码为哈希值的用户;
先查看密码的哈希值:

select password('rosepwd');

结果:
查看密码的哈希值

-- 创建秘密为哈希值的用户
create user 'rose02'@'localhost' identified by password '*15151B36B8E49FD6A6222C4AF15758661CFCE654';

结果:
创建秘密为哈希值的用户
GRANT语句
GRANT语句创建新用户语法
GRANT案例创建用户

grant select, update on *.* to 'testuser'@'localhost' identified by 'testpwd';

结果:
使用grant语句创建用户并赋予查询更新权限
删除普通用户
使用DROP USER语句删除用户

-- 删除用户
drop user 'testuser'@'localhost';

结果:
删除testuser用户
使用DELETE语句删除用户

-- 删除用户
delete from mysql.user where user = 'rose02'and host='localhost';

结果:
使用delete删除rose02用户

2.数据库用户的管理权限

权限管理
授权
给用户授予权限语法
grant案例
首先我们先查看一下rose用户都有哪些权限:

-- 查看用户的权限信息
show grants for 'rose'@'localhost';

结果:
rose用户权限
一般看到GRANT USAGE ON … 这种语句,都表示为该用户只有登录和退出权限,没有其他权限,在创建用户不指定密码的情况下也会出现上述情况。
接着我们给rose用户授予book数据库所有表插入、查询的权限:

-- 授予rose用户插入、查询book库所有表的权限
grant insert, select on book.* to 'rose'@'localhost';
-- 刷新系统权限表
flush privileges;

结果:
rose用户权限
注意:一般我们再授予权限给某个用户后,一般要进行刷新系统权限表的操作如上,这样以便权限表信息能够及时的更新。
查看用户的授权
收回权限

-- 回收rose用户的作用于book库所有表的查询的权限
revoke select on book.* from 'rose'@'localhost';
-- 刷新系统权限表
flush privileges;

回收rose用户的查询权限之后,我们再用rose用户登录MySQL之后,发现已经不能使用book数据库了。
rose用户查询book数据库

3.数据库的日志管理

MySQL的日志
MySQL的日志分类
错误日志
启动和设置错误日志1
启动和设置错误日志2
查看错误日志

-- 查看日志文件的路径
show variables like 'log_error';

结果:
查看日志文件的路径
删除错误日志1
删除错误日志2

-- 创建新的日志信息表
flush logs;

上述命令只有在原日志文件不存在的时候才起作用。下面是另外一种创建日志的方式:

-- 创建新的日志信息表
mysqladmin -uroot -p flush-logs

这种方式需要先退出MySQL,在登录的时候进行操作:
创建新的日志信息表

4.数据库的备份与恢复

数据的备份和恢复
使用MYSQLdump命令备份
备份案例

-- 1.使用MYSQLdump命令备份数据库图书管理系统中的所有表
mysqldump -uroot -p book >C:\Users\mysqlbackup\book_20200714.sql
-- 2.备份book数据库中的readerinfo表
mysqldump -uroot -p book readerinfo >C:\Users\mysqlbackup\book_readerinfo_20200714.sql
-- 3.使用MYSQLdump备份book和mytest数据库
mysqldump -uroot -p --databases book mytest >C:\Users\mysqlbackup\book_mytest_20200714.sql

结果:
mysql备份数据库和表
备份的数据库和表
数据恢复
数据恢复案例

-- 恢复book数据库下的readerinfo表
mysql -uroot -p book <C:\Users\mysqlbackup\book_readerinfo_20200714.sql

使用source进行数据恢复

-- 在登录状态下恢复book数据库下的readerinfo表
use book;
source C:\Users\mysqlbackup\book_readerinfo_20200714.sql

注意:mysqldump和source语句最好都不带分号!!!

5.数据表的导出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-- 使用select...into outfile导出readerinfo表的数据到readerinfo.txt这个文件
select * from book.readerinfo into outfile 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/readerinfo.txt';

执行上面的sql语句之后会在Uploads文件夹下生成一个名为readerinfo.txt的文件。导出后可以自行打开查看导出的数据。
本例中导出的数据如下所示:
导出读者信息表
图中的**\N**表明这个字段的值为空。除此之外,我们还可以规定导出的数据格式:

-- 使用select...into outfile导出readerinfo表的数据到readerinfo.txt这个文件,并设置导出文件的格式

结果如下:
导出带有一定格式的读者信息表
自我感受一下以上不带格式和带格式的导出的不同之处。
这里我们为什么要导出到C:/ProgramData/MySQL/MySQL Server 5.7/Uploads这个文件夹下呢?我们首先打开C:\ProgramData\MySQL\MySQL Server 5.7文件夹下的my.ini文件找到一行记录如下:
导出数据导出路径
这个以属性-值的方式给出的信息规定了导出文件的位置。另外我们也可以通过sql语句看到:

show global variables like '%secure_file_priv%';

结果:
sql语句查询数据导出路径
在这里插入图片描述
在这里插入图片描述

-- 使用mysqldump命令导出book库下的bookcategory表
mysqldump -T "C:/ProgramData/MySQL/MySQL Server 5.7/Uploads" -uroot -p book bookcategory

结果:
使用mysqldump命令导出数据
这里我们要先退出mysql,在登录的时候操作,并且使用自己的登录名和密码。执行sql命令之后会发现Uploads文件夹下生成了.sql的文件和.txt的文件:
使用mysqldump命令导出数据到文件
在这里插入图片描述
在这里插入图片描述

-- 使用mysql命令导出book库下的readerinfo表到readerinfo2.txt
mysql -uroot -p --execute="select * from readerinfo;" book > "C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/readerinfo2.txt"

结果如下:
使用mysql命令数据
导出的数据如下图:
导出的数据
可以看到除了导出数据以外,还将表中的字段名也导出了。

6.数据表的导入

在这里插入图片描述
在这里插入图片描述

-- 使用load data infile命令导入readerinfo表中的数据
load data infile "C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/readerinfo1.txt" into table book.readerinfo;

结果:
导入数据
这里我们选择使用readerinfo1.txt是因为带有格式或者包含字段名的数据导入会报错。所以我们在导入数据时要选择导入没有任何格式的数据进行导入。
在这里插入图片描述

-- 使用mysqlimport命令导入readerinfo表中的数据
mysqlimport -uroot -p book "C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/readerinfo.txt"

结果:
使用mysqlimport命令导入数据
使用这种方式导入要保证2点:

  1. 导入文件的文件名要和导入的数据库下的表的表名保持一致;
  2. 导入文件的内容不能包含任何格式。

7.MySQL数据库入门教程总结

当读者看到这里的时候,说明我们的MySQL数据库入门教程所有的内容已经更新完了。感谢大家的浏览和关注。博主本人也是一个MySQL的入门学习者,和在看的你们一样,相信技术可以改变世界,极致的付出将获得回报。后续博主还将更加努力的学习,用所学为未来添砖加瓦。在技术的世界,杜绝牡丹虽好空无目,信奉枣花虽小果实成。花里胡哨的技术令人沉迷,但是实实在在的技术才是进步!一步一个脚印,终将遇见美好的事情即将发生。
———致每一个奋斗的少年

附:本教程的视频教程地址: 我要自学网MySQL数据库入门教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值