1. 程式人生 > >MySQL數據庫學習【第十一篇】IDE工具介紹及數據備份

MySQL數據庫學習【第十一篇】IDE工具介紹及數據備份

導出 數據庫文件 文本 desc ext 直接 min ble 如果

一、IDE工具介紹

生產環境還是推薦使用mysql命令行,但為了方便我們測試,可以使用IDE工具navicat

二、MySQL數據備份

#1. 物理備份: 直接復制數據庫文件,適用於大型數據庫環境(
如數據文件、控制文件、歸檔日誌文件等)。
但不能恢復到異構系統中如Windows。

#2. 邏輯備份: 備份的是建表、建庫、插入等操作所執行SQL語句,適用於中小型數據庫,效率相對較低。
#3. 導出表: 將表導入到文本文件中。

也可以用IDE工具來實現備份,點擊轉儲SQL..,那我們重點來研究一下MySQLdump實現的邏輯備份

1.使用mysqldump實現邏輯備份

#語法:
# mysqldump -h 服務器 -u用戶名 -p密碼 數據庫名 > 備份文件.sql
當你是本地登錄的時候這個-h可以不寫,當其他用戶登錄時,就得寫上-h 服務器

#示例:
1.單庫備份
mysqldump -uroot -p123456 day47 > E:\\day47.sql
mysqldump -uroot -p123456 test class employee department > E:\\test-c-e.sql
2.多庫備份
mysqldump -uroot -p123456 --databases test db2 zuoye > E:\\dbzzz.sql
3.備份所有庫
mysqldump -uroot -p123456 --all-databases > E://all.sql

2.恢復邏輯備份

方法1.在沒有登錄進去之前恢復
C:\Users\Administrator>mysql -uroot -p123456 test < day47.sql
drop database day47;
drop database test;
create database day47;
create database test;
mysql -uroot -p123456 day47 < day47.sql
mysql -uroot -p123456 test < day47.sql  #也可以在自己新建的空數據庫裏添加你備份的庫
方法2.mysql登錄進去後恢復
mysql> use db1;
mysql> SET SQL_LOG_BIN=0;  #設置日誌,如果寫日誌就等於1,不寫就等於0。一般不用設置
mysql> source E:\\day47.sql;

3.註:如果備份/恢復單個庫時,可以修改sql文件
DROP database if exists school;
create database school;
use school;

在沒有登錄之前恢復是,如果你想看恢復了沒有的時候是不是每次都要登錄進去看看啊,那麽我們可以這樣做,就不用登錄直接查看 了。

不用再登錄進去執行sql語句了
mysql -uroot -e "use test;show tables;" #註意是雙引號 mysql -uroot -e "show databases;" #註意分號在雙引號裏面

註意事項:
1. 完全恢復到一個幹凈的環境(例如新的數據庫或刪除原有的數據庫)
2. 恢復期間所有SQL語句不應該記錄到binlog中

3.表的導出與導入

一、表的導出
use day47
select * from userinfo;
select * from userinfo into outfile ‘E:\\userinfo.txt‘  fields terminated
by ‘,‘ lines terminated by ‘\n‘;  #將字段之間按逗號分開,行之間用‘\n‘分開

這樣寫的話報錯了。新版本不支持你這樣直接指定路徑寫,為了保證數據的安全。
如果一旦有黑客拿到sql權限的時候,就把你的數據就給拿走了。你的數據就不安全了
那麽怎麽解決這個錯誤呢?
show variables like ‘%secure%‘;
解決方法:更改配置文件
[mysqld]
secure_file_priv=‘E:\\‘

技術分享圖片

二、表的導入
use bak;
show tables;
create table user(id int primary key auto_increment,name char(20),age int,depart_id int);
desc user;
load data infile ‘E:\\userinfo.txt‘ into table user fields terminated by ‘,‘ 
lines terminated by ‘\n‘;#導入表

技術分享圖片

4.數據庫遷移

務必保證在相同版本之間遷移
# mysqldump -h 源IP -uroot -p123 --databases db1 | mysql -h 目標IP -uroot -p456

MySQL數據庫學習【第十一篇】IDE工具介紹及數據備份