天天看點

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

一、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:\\'      
MySQL資料庫學習【第十一篇】IDE工具介紹及資料備份
二、表的導入
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';#導入表      
MySQL資料庫學習【第十一篇】IDE工具介紹及資料備份

4.資料庫遷移

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

轉載于:https://www.cnblogs.com/xiaohema/p/8454990.html