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

1.数据库的用户管理

MySQL的管理与维护(第十三章)_第1张图片
MySQL的管理与维护(第十三章)_第2张图片
MySQL的管理与维护(第十三章)_第3张图片
MySQL的管理与维护(第十三章)_第4张图片
MySQL的管理与维护(第十三章)_第5张图片
MySQL的管理与维护(第十三章)_第6张图片
MySQL的管理与维护(第十三章)_第7张图片
MySQL的管理与维护(第十三章)_第8张图片

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

结果:
MySQL的管理与维护(第十三章)_第9张图片
上面创建的用户都是带明文的密码,也可以创建密码为哈希值的用户;
先查看密码的哈希值:

select password('rosepwd');

结果:
MySQL的管理与维护(第十三章)_第10张图片

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

结果:
MySQL的管理与维护(第十三章)_第11张图片
MySQL的管理与维护(第十三章)_第12张图片
MySQL的管理与维护(第十三章)_第13张图片
MySQL的管理与维护(第十三章)_第14张图片

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

结果:
MySQL的管理与维护(第十三章)_第15张图片
MySQL的管理与维护(第十三章)_第16张图片
MySQL的管理与维护(第十三章)_第17张图片

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

结果:
MySQL的管理与维护(第十三章)_第18张图片
MySQL的管理与维护(第十三章)_第19张图片

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

结果:
MySQL的管理与维护(第十三章)_第20张图片

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

MySQL的管理与维护(第十三章)_第21张图片
MySQL的管理与维护(第十三章)_第22张图片
MySQL的管理与维护(第十三章)_第23张图片
MySQL的管理与维护(第十三章)_第24张图片
首先我们先查看一下rose用户都有哪些权限:

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

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

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

结果:
MySQL的管理与维护(第十三章)_第26张图片
注意:一般我们再授予权限给某个用户后,一般要进行刷新系统权限表的操作如上,这样以便权限表信息能够及时的更新。
MySQL的管理与维护(第十三章)_第27张图片
MySQL的管理与维护(第十三章)_第28张图片

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

回收rose用户的查询权限之后,我们再用rose用户登录MySQL之后,发现已经不能使用book数据库了。
MySQL的管理与维护(第十三章)_第29张图片

3.数据库的日志管理

MySQL的管理与维护(第十三章)_第30张图片
MySQL的管理与维护(第十三章)_第31张图片
MySQL的管理与维护(第十三章)_第32张图片
MySQL的管理与维护(第十三章)_第33张图片
MySQL的管理与维护(第十三章)_第34张图片
MySQL的管理与维护(第十三章)_第35张图片

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

结果:
MySQL的管理与维护(第十三章)_第36张图片
MySQL的管理与维护(第十三章)_第37张图片
MySQL的管理与维护(第十三章)_第38张图片

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

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

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

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

4.数据库的备份与恢复

MySQL的管理与维护(第十三章)_第39张图片
MySQL的管理与维护(第十三章)_第40张图片
MySQL的管理与维护(第十三章)_第41张图片

-- 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的管理与维护(第十三章)_第42张图片
MySQL的管理与维护(第十三章)_第43张图片
MySQL的管理与维护(第十三章)_第44张图片
MySQL的管理与维护(第十三章)_第45张图片

-- 恢复book数据库下的readerinfo表
mysql -uroot -p book 

MySQL的管理与维护(第十三章)_第46张图片

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

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

5.数据表的导出

MySQL的管理与维护(第十三章)_第47张图片
MySQL的管理与维护(第十三章)_第48张图片
MySQL的管理与维护(第十三章)_第49张图片

-- 使用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的文件。导出后可以自行打开查看导出的数据。
本例中导出的数据如下所示:
MySQL的管理与维护(第十三章)_第50张图片
图中的**\N**表明这个字段的值为空。除此之外,我们还可以规定导出的数据格式:

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

结果如下:
MySQL的管理与维护(第十三章)_第51张图片
自我感受一下以上不带格式和带格式的导出的不同之处。
这里我们为什么要导出到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%';

结果:
MySQL的管理与维护(第十三章)_第52张图片
MySQL的管理与维护(第十三章)_第53张图片
MySQL的管理与维护(第十三章)_第54张图片

-- 使用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的管理与维护(第十三章)_第55张图片
MySQL的管理与维护(第十三章)_第56张图片

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

结果如下:
使用mysql命令数据
导出的数据如下图:
MySQL的管理与维护(第十三章)_第57张图片
可以看到除了导出数据以外,还将表中的字段名也导出了。

6.数据表的导入

MySQL的管理与维护(第十三章)_第58张图片
MySQL的管理与维护(第十三章)_第59张图片

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

结果:
导入数据
这里我们选择使用readerinfo1.txt是因为带有格式或者包含字段名的数据导入会报错。所以我们在导入数据时要选择导入没有任何格式的数据进行导入。
MySQL的管理与维护(第十三章)_第60张图片

-- 使用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数据库入门教程

你可能感兴趣的:(MySql入门教程)