標籤:技術 檔案中 stat style from 直接 sele 新版 field
- 物理備份:直接複製資料庫檔案,適用於大型資料庫環境(如資料檔案、控制檔案、歸檔記錄檔等)。但不能恢複到異構系統中如Windows。
- 邏輯備份: 備份的是建表、建庫、插入等操作所執行SQL語句,適用於中小型資料庫,效率相對較低。
- 匯出表:將表匯入到文字檔中。----->一條條插入記錄的操作
#文法:# mysqldump -h 伺服器 -u使用者名稱 -p密碼 資料庫名 > 備份檔案.sql當你是本地登入的時候這個-h可以不寫,當其他使用者登入時,就得寫上-h 伺服器#樣本:1.單庫備份mysqldump -uroot -p123456 day47 > E:\\day47.sqlmysqldump -uroot -p123456 test class employee department > E:\\test-c-e.sql2.多庫備份mysqldump -uroot -p123456 --databases test db2 zuoye > E:\\dbzzz.sql3.備份所有庫mysqldump -uroot -p123456 --all-databases > E://all.sql
使用mysqldump實現邏輯備份
方法1.在沒有登入進去之前恢複C:\Users\Administrator>mysql -uroot -p123456 test < day47.sqldrop database day47;drop database test;create database day47;create database test;mysql -uroot -p123456 day47 < day47.sqlmysql -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;
恢複備份
當我們沒有登入使用者時,查看恢複狀況,可以用一下語句,不用登入
mysql -uroot -e "use test;show tables;" #注意是雙引號mysql -uroot -e "show databases;" #注意分號在雙引號裡面
一、表的匯出 select * from stu into outfile ‘E:\\userinfo.txt‘ fields terminatedby ‘,‘ lines terminated by ‘\n‘; #將欄位之間按逗號分開,行之間用‘\n‘分開1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement這樣寫的話報錯了。新版本不支援你這樣直接指定路徑寫,為了保證資料的安全。如果一旦有駭客拿到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‘;#匯入表
匯入
務必保證在相同版本之間遷移# mysqldump -h 源IP -uroot -p123 --databases db1 | mysql -h 目標IP -uroot -p456
mysql資料備份