一、IDE工具介紹
生產環境還是推薦使用mysql命令行,但為了方便我們測試,可以使用IDE工具
下載鏈接:https://pan.baidu.com/s/1bpo5mqj
二、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