2018.3.23 13周5次课

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018.3.23 13周5次课相关的知识,希望对你有一定的参考价值。

十三周五次课(3月23日)

13.4 mysql用户管理

13.5 常用sql语句

13.6 mysql数据库备份恢复

13.4 mysql用户管理

MySQL创建用户以及授权

  • 授权给ip

grant all on *.* to 'user1'@'127.0.0.1' identified by 'passwd';

all表示所有的权限(如读、写、查询、删除等操作);on:后面跟的数据库名;有2个*,前者表示所有的数据库,后者表示所有的表;to:授权给后面的用户;user1:用户名;@'127.0.0.1':来源ip,如果是本机的话可以不用写,@后面可以写%,表示通配,所有的ip;identified by后面跟密码,用单引号括起来。

grant all on *.* to 'user1'@'127.0.0.1' identified by '123456a';

技术分享图片

测试user1能否登陆:

退出mysql

mysql -uuser1 -p123456a

技术分享图片

报错无法登陆,这是因为登陆方式是采用默认的sock方式,前面创建用户时我们授权的对象是127.0.0.1,所以这里需要-h指定ip的登陆方式

mysql -uuser1 -p123456a -h127.0.0.1

技术分享图片

  • 授权给localhost:

登陆mysql:mysql -uroot -paminglinux

mysql -uroot –paminglinux

如果命令打错了用分号退出

技术分享图片

grant all on *.* to 'user1'@'localhost' identified by '123456a'; //等同grant all on *.* to 'user1' identified by '123456a';

技术分享图片

退出mysql,再次登陆

技术分享图片

可以对具体的权限授权:

grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.37.1' identified by 'passwd';

针对所有的ip授权:

grant all on db1.* to 'user3'@'%' identified by 'passwd';

查看所有的授权:

show grants; //看的是root用户

技术分享图片

查看指定用户的授权:

show grants for [email protected]'127.0.0.1';

技术分享图片

grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.37.1' identified by 'passwd';

技术分享图片

  • 同一用户要登陆到另一IP地址,用户授权相同该如何操作:

方法:把授权的命令在另一IP(192.168.37.10)地址上全部执行一遍

根据上图user2的授权命令,修改下ip执行,有几条就执行几条

GRANT USAGE ON *.* TO 'user2'@'192.168.37.10' IDENTIFIED BY PASSWORD '*59C70DA2F3E3A5BDFF46B68F5C8B8F25762BCCEF0';

技术分享图片

GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.37.10';

技术分享图片

show grants for [email protected]'192.168.37.10';

技术分享图片

13.5 常用sql语句

  • 查询语句:可以在一个库中查询另一个库的数据,尽量不要进行查询包含*的操作

select count(*) from mysql.user; //查询mysql库中user表的行数

技术分享图片

select * from mysql.db\G; //查看mysql库中db表的全部数据

技术分享图片

关于数据库引擎目前常用的有2种:myisam和innodb

查看mysql库的引擎,默认所有的表都用myisam引擎,myisam会自动统计行数

use mysql;

show create table user\G;

技术分享图片

查看db1库引擎,默认是innodb,不会自动统计行数

use db1;

show create table t1\G;

技术分享图片

select db from mysql.db; //查询db字段

技术分享图片

select db,user from mysql.db; //查询多个字段

技术分享图片

select * from mysql.db where host like '192.168.%'\G; //模糊查询,用like

技术分享图片

  • 插入语句:

desc db1.t1; //t1表为空

技术分享图片

insert into db1.t1 values (1, 'abc'); //t1表插入数据,第二个字段数据类型是字符串,所以abc要加上单引号

技术分享图片

  • 更改语句:

update db1.t1 set name='aaa' where id=1;

技术分享图片

  • 删除字段数据:

delete from db1.t1 where id=1;

技术分享图片

  • 清空表的数据:

truncate table db1.t1; //清空表的内容,表的结构还在;drop是数据和结构都删除

技术分享图片

  • 删除表:

drop table t1;

技术分享图片

  • 删除数据库:

drop database db1;

技术分享图片

13.6 mysql数据库备份恢复

mysqldump命令

备份库:

mysqldump -uroot -paminglinux mysql > /tmp/mysqlbak.sql    //-u和-p两个选项的使用方法和前面介绍的一样;后面的mysql指的是库名,然后重定向到一个文本文档里。备份做完后可以查看/tmp/mysqlba这个

文件里的内容

技术分享图片

恢复库:

mysql -uroot -paminglinux -e "create database mysql2"        //建立一个新库

mysql -uroot -paminglinux mysql2 < /tmp/mysqlbak.sql     //恢复到mysql2库

技术分享图片

mysql -uroot -paminglinux mysql2    //进入mysql2数据库

select database();    //查询当前数据库是mysql2

技术分享图片

show tables;     //和mysql库一样

备份表 :在库名后加上表的名字就可以了

mysqldump -uroot -paminglinux mysql user > /tmp/user.sql

技术分享图片

恢复表:只要写库名就可以了

mysql -uroot -paminglinux mysql < /tmp/user.sql

less /tmp/user.sql   //查看备份表user.sql

技术分享图片

技术分享图片

备份所有库:用-A选项

mysqldump -uroot -paminglinux -A >/tmp/mysql_all.sql

技术分享图片

只备份表结构:用-d选项,后面指定数据库名

mysqldump -uroot -paminglinux -d mysql2 > /tmp/mysql2.sql

技术分享图片


以上是关于2018.3.23 13周5次课的主要内容,如果未能解决你的问题,请参考以下文章

2018.1.12 5周5次课

2018.3.13 12周2次课

2018.2.28 10周1次课

2018.3.22 13周4次课

2018.1.24 7周3次课

2018.4.13 16周3次课