1. 程式人生 > >2018.3.23 13周5次課

2018.3.23 13周5次課

Linux學習

十三周五次課(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 user1@'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 user2@'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次課