天天看點

MySQL之資料導入導出備份以及事務、存儲引擎MySQL之資料導入導出備份以及事務、存儲引擎資料導入資料導出資料備份(mysqldump,Linux終端操作)資料恢複事務和事務復原存儲引擎(代表表的處理器)

MySQL之資料導入導出備份以及事務、存儲引擎

資料導入

作用:把檔案系統的内容導入到資料庫中

操作步驟:

1.在資料庫中建立對應的表

create table userinfo(  username varchar(20),

passwd char(1),

uid int, 

gid int, 

comment varchar(50),  

homedir varchar(50), 

shell varchar(50) );

2.把要導入的檔案拷貝到資料庫搜尋路徑中

          1.檢視資料庫的搜尋路徑

                   show variables like "secure_file_priv";

          2.sudo cp / etc / passwd / var / lib / mysql - files /

3.執行資料導入語句(mysql輸入四條指令一起寫)

          load data infile "/var/lib/mysql-files/passwd"

          into table userinfo(庫名)

          fields terminated by ":"  # 表示以冒号分割

          lines terminated by "\n";

資料導出

作用:将資料庫中的表記錄儲存到系統檔案中

文法格式:

select(...字段名) from 表名

into outfile "/var/lib/mysql-files/user1.txt"

fields terminated by "分隔符"

lines terminated by "\n";

資料備份(mysqldump,Linux終端操作)

指令格式 : mysqldump -u使用者名 -p 源庫名 > 路徑/xxx.sql

源庫名的表示方式:

--all-databases 備份所有庫

庫名      備份單個庫

-B 庫1 庫2...   備份多個庫

庫名 表1 表2... 備份指定庫的指定表

示例:

1.備份所有庫all.sql,放到mydata目錄中

     mysqldump -root -p --all-databases > all.sql

2.備份db4庫中的sheng,city 和xian三張表為 db4scx.sql

     mysqldump -uroot -p db4 sheng city xian > db4scx.sql

資料恢複

指令格式 : mysql -u使用者名 -p 目标庫名 < xxx.sql

     mysql -uroot -p --one-database MOSHOU < all.sql

注意:

恢複庫時,原庫中表中記錄會被覆寫,新增表不會被覆寫

事務和事務復原

定義:一件事從開始發生到結束的過程

作用:確定資料一緻性

事務應用

開啟事務:begin;

## autocommit 被禁用,SQL指令不會送出到資料庫執行

終止事務:commit;

rollback;

事務和事務復原隻針對表記錄操作:增、删、改有效,對鍵庫建表無效

示例:

1.背景 你:建行卡 你朋友:工商卡 你在建行自動取款機上給你朋友工商卡轉5000元

2.過程

表1:CCB

create table CCb(name char(15),money init );

insert into CCB values ("xhuanwian",10000);

表2:ICBC

create table ICBC(name char(15),money int);

insert into ICBC values ("shouqian",4000);

3.

mysql>begin;

mysql>update CCB set money=5000 where name

mysql>update ICBC set money=9000 where name

存儲引擎(代表表的處理器)

MySQL存儲引擎(處理表的處理器)

基本操作:

        檢視所有存儲引擎

             show engines;

        檢視表存儲引擎

              show create table 表名;

        指定存儲引擎

                create table 表名(……)engine = innodb,character set utf8;

         修改已有表的存儲引擎

                 alter table 表名 engine=myisam;

工作常用

        InnoDB MyISAM

修改表的預設存儲引擎(修改配置檔案)

sudo -i

cd /etc/mysql/mysql.conf.d/

(複制一下,以防丢失)

[mysqld]

default-storage-engine=myisam

(修改預設引擎)

重新開機mysql

存儲引擎特點

MyISAM特點

             獨享表空間

              表名.frm bi結構

              表名.myd 表記錄

               表名.myi 索引檔案

                隻支援表級鎖

InnoDB特點

           共享表空間

           表名.frm 表結構和索引資訊

           表名.ibd 表記錄

            支援行級鎖

memory

           表結構存儲于硬碟,表記錄存儲于記憶體

            表名.frm

            服務重新開機後表結構還在,表記錄都消失

決定表使用什麼存儲引擎

主要用來查詢的表用MyISAM

寫操作多的表用InnoDB

原文位址https://blog.csdn.net/sinat_42311311/article/details/81410817