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