-- 创建带密码的用户名
create user 'rose'@'localhost' identified by 'rosepwd';
-- 创建不带密码的用户名
create user 'rose01'@'localhost';
结果:
上面创建的用户都是带明文的密码,也可以创建密码为哈希值的用户;
先查看密码的哈希值:
select password('rosepwd');
-- 创建秘密为哈希值的用户
create user 'rose02'@'localhost' identified by password '*15151B36B8E49FD6A6222C4AF15758661CFCE654';
grant select, update on *.* to 'testuser'@'localhost' identified by 'testpwd';
-- 删除用户
drop user 'testuser'@'localhost';
-- 删除用户
delete from mysql.user where user = 'rose02'and host='localhost';
-- 查看用户的权限信息
show grants for 'rose'@'localhost';
结果:
一般看到GRANT USAGE ON … 这种语句,都表示为该用户只有登录和退出权限,没有其他权限,在创建用户不指定密码的情况下也会出现上述情况。
接着我们给rose
用户授予book数据库所有表插入、查询的权限:
-- 授予rose用户插入、查询book库所有表的权限
grant insert, select on book.* to 'rose'@'localhost';
-- 刷新系统权限表
flush privileges;
结果:
注意:一般我们再授予权限给某个用户后,一般要进行刷新系统权限表的操作如上,这样以便权限表信息能够及时的更新。
-- 回收rose用户的作用于book库所有表的查询的权限
revoke select on book.* from 'rose'@'localhost';
-- 刷新系统权限表
flush privileges;
回收rose
用户的查询权限之后,我们再用rose
用户登录MySQL之后,发现已经不能使用book数据库了。
-- 查看日志文件的路径
show variables like 'log_error';
-- 创建新的日志信息表
flush logs;
上述命令只有在原日志文件不存在的时候才起作用。下面是另外一种创建日志的方式:
-- 创建新的日志信息表
mysqladmin -uroot -p flush-logs
-- 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
-- 恢复book数据库下的readerinfo表
mysql -uroot -p book
-- 在登录状态下恢复book数据库下的readerinfo表
use book;
source C:\Users\mysqlbackup\book_readerinfo_20200714.sql
注意:mysqldump和source语句最好都不带分号!!!
-- 使用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%';
-- 使用mysqldump命令导出book库下的bookcategory表
mysqldump -T "C:/ProgramData/MySQL/MySQL Server 5.7/Uploads" -uroot -p book bookcategory
结果:
这里我们要先退出mysql,在登录的时候操作,并且使用自己的登录名和密码。执行sql命令之后会发现Uploads
文件夹下生成了.sql
的文件和.txt
的文件:
-- 使用mysql命令导出book库下的readerinfo表到readerinfo2.txt
mysql -uroot -p --execute="select * from readerinfo;" book > "C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/readerinfo2.txt"
结果如下:
导出的数据如下图:
可以看到除了导出数据以外,还将表中的字段名也导出了。
-- 使用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"
当读者看到这里的时候,说明我们的MySQL数据库入门教程所有的内容已经更新完了。感谢大家的浏览和关注。博主本人也是一个MySQL的入门学习者,和在看的你们一样,相信技术可以改变世界,极致的付出将获得回报。后续博主还将更加努力的学习,用所学为未来添砖加瓦。在技术的世界,杜绝牡丹虽好空无目,信奉枣花虽小果实成。花里胡哨的技术令人沉迷,但是实实在在的技术才是进步!一步一个脚印,终将遇见美好的事情即将发生。
———致每一个奋斗的少年
附:本教程的视频教程地址: 我要自学网MySQL数据库入门教程