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次课的主要内容,如果未能解决你的问题,请参考以下文章