windows mysql 備份與還原 javascript
步驟1:使用mysqldump命令將suppliers表備份到文件C:\bktestdir\suppliers_bk.sql。
mysqldump -u root -p test suppliers > C:\bktestdir\suppliers_bk.sqlphp
步驟2:使用mysql命令還原suppliers表到test數據庫中
DELETE FROM suppliers;
source C:/bktestdir/suppliers_bk.sql;html
步驟3:使用SELECT… INTO OUTFILE語句導出suppliers表中的記錄,導出文件位於目錄C:\bktestdir下,名稱爲suppliers_out.txt
SELECT * FROM test.suppliers INTO OUTFILE "C:/bktestdir/suppliers_out.txt"
FIELDS
TERMINATED BY ','
ENCLOSED BY '\"'
LINES
STARTING BY '<'
TERMINATED BY '>\r\n';java
步驟4:使用LOAD DATA INFILE語句導入suppliers_out.txt數據到suppliers表。
LOAD DATA INFILE 'C:/bktestdir/suppliers_out.txt' INTO TABLE test.suppliers
FIELDS
TERMINATED BY ','
ENCLOSED BY '\"'
LINES
STARTING BY '<'
TERMINATED BY '>\r\n';mysql
步驟5:使用musqldump命令將suppliers表中的記錄導出到文件C:\bktestdir\suppliers_html.html。
mysql -u root -p --html --execute="SELECT * FROM suppliers;" test > C:/bktestdir/suppliers_html.htmllinux
linux mysql 備份與還原
備份操做
(1)導出指定庫中的部分表
mysqldump [選項] 庫名 [表名1] [表名2] .... > /備份路徑/備份文件名
(2)導出一個或多個完整的庫(包括其中全部的表)
mysqldump [選項] --databases 庫名 1 [庫名 2] .... > /備份路徑/備份文件名
(3)備份mysql 服務器中的全部庫
mysqldump [選項]--opt --all-databases > /備份路徑/備份文件名sql
還原操做
mysql [選項] [庫名] [表名] < /備份路徑/備份文件名數據庫
舉例:windows
隨便找一個數據庫,建立張表插入數據服務器
備份(-u 指定登陸用戶 -p 數據庫名 表名) 備份名稱
mysqldump -u root -p dingxue student > dingxue.sql
Enter password:****
還原(還原表直接把表放到指定的數據庫便可)
mysql -u root -p dingxue < dingxue.sql
/***************************樣例表***************************/
CREATE DATABASE booksDB;
user booksDB;
CREATE TABLE books
(
bk_id INT NOT NULL PRIMARY KEY,
bk_title VARCHAR(50) NOT NULL,
copyright YEAR NOT NULL
);
INSERT INTO books
VALUES (11078, 'Learning MySQL', 2010),
(11033, 'Study Html', 2011),
(11035, 'How to use php', 2003),
(11072, 'Teach youself javascript', 2005),
(11028, 'Learing C++', 2005),
(11069, 'MySQL professional', 2009),
(11026, 'Guide to MySQL 5.5', 2008),
(11041, 'Inside VC++', 2011);
CREATE TABLE authors
(
auth_id INT NOT NULL PRIMARY KEY,
auth_name VARCHAR(20),
auth_gender CHAR(1)
);
INSERT INTO authors
VALUES (1001, 'WriterX' ,'f'),
(1002, 'WriterA' ,'f'),
(1003, 'WriterB' ,'m'),
(1004, 'WriterC' ,'f'),
(1011, 'WriterD' ,'f'),
(1012, 'WriterE' ,'m'),
(1013, 'WriterF' ,'m'),
(1014, 'WriterG' ,'f'),
(1015, 'WriterH' ,'f');
CREATE TABLE authorbook
(
auth_id INT NOT NULL,
bk_id INT NOT NULL,
PRIMARY KEY (auth_id, bk_id),
FOREIGN KEY (auth_id) REFERENCES authors (auth_id),
FOREIGN KEY (bk_id) REFERENCES books (bk_id)
);
INSERT INTO authorbook
VALUES (1001, 11033), (1002, 11035), (1003, 11072), (1004, 11028),
(1011, 11078), (1012, 11026), (1012, 11041), (1014, 11069);
/***************************樣例表***************************/
【例14.1】使用mysqldump命令備份數據庫中的全部表
mysqldump -u root -p booksdb > C:/backup/booksdb_20110101.sql
【例14.2】備份booksDB數據庫中的books表
mysqldump -u root -p booksDB books > C:/backup/books_20110101.sql
【例14.3】使用mysqldump備份booksDB和test數據庫
mysqldump -u root -p --databases booksDB test> C:\backup\books_testDB_20110101.sql
【例14.4】使用mysqldump備份服務器中的全部數據庫
mysqldump -u root -p --all-databases > C:/backup/alldbinMySQL.sql
【例14.5】使用mysqlhotcopy備份test數據庫到/usr/backup目錄下
mysqlhotcopy -u root -p test /usr/backup
【例14.6】使用mysql命令將C:\backup\booksdb_20110101.sql文件中的備份導入到數據庫中
mysql -u root-p booksDB < C:/backup/booksdb_20110101.sql
【例14.7】使用root用戶登陸到服務器,而後使用souce導入本地的備份文件booksdb_20110101.sql
use booksdb;
source C:/backup/booksdb_20110101.sql
【例14.8】從mysqlhotcopy拷貝的備份恢復數據庫
cp –R /usr/backup/test usr/local/mysql/data
【例14.9】將www.abc.com主機上的MySQL數據庫所有遷移到www.bcd.com主機上。在www.abc.com主機上執行的命令以下:
mysqldump -h www.bac.com -uroot -ppassword dbname |
mysql -hwww.bcd.com -uroot -ppassword
【例14.10】使用SELECT...INTO OUTFILE將test數據庫中的person表中的記錄導出到文本文件
SELECT * FROM test.person INTO OUTFILE "C:/person0.txt";
【例14.11】使用SELECT...INTO OUTFILE將test數據庫中的person表中的記錄導出到文本文件,使用FIELDS選項和LINES選項,要求字段之間使用逗號‘,’間隔,全部字段值用雙引號括起來,定義轉義字符定義爲單引號‘\’’
SELECT * FROM test.person INTO OUTFILE "C:/person1.txt"
FIELDS
TERMINATED BY ','
ENCLOSED BY '\"'
ESCAPED BY '\''
LINES
TERMINATED BY '\r\n';
【例14.12】使用SELECT...INTO OUTFILE將test數據庫中的person表中的記錄導出到文本文件,使用LINES選項,要求每行記錄以字符串「> 」開始,以「<end>」字符串結尾
SELECT * FROM test.person INTO OUTFILE "C:/person2.txt"
LINES
STARTING BY '> '
TERMINATED BY '<end>';
SELECT * FROM test.person INTO OUTFILE "C:/person2.txt"
LINES
STARTING BY '> '
TERMINATED BY '<end>\r\n';
【例14.13】使用mysqldump將test數據庫中的person表中的記錄導出到文本文件
mysqldump -T C:/ test person -u root -p
【例14.14】使用mysqldump命令將test數據庫中的person表中的記錄導出到文本文件,使用FIELDS選項,要求字段之間使用逗號‘,’間隔,全部字符類型字段值用雙引號括起來,定義轉義字符定義爲問號‘?’,每行記錄以回車換行符「\r\n」結尾
mysqldump -T C:\backup test person -u root -p --fields-terminated-by=, --fields-optionally-enclosed-by=\" --fields-escaped-by=? --lines-terminated-by=\r\n
【例14.15】使用mysql語句導出test數據庫中person表中的記錄到文本文件
mysql -u root -p --execute="SELECT * FROM person;" test > C:\person3.txt
【例14.16】使用mysql命令導出test數據庫中person表中的記錄到文本文件,使用--vertical參數顯示結果
mysql -u root -p --vertical --execute="SELECT * FROM person;" test > C:\person4.txt
【例14.17】使用mysql命令導出test數據庫中person表中的記錄到html文件
mysql -u root -p --html --execute="SELECT * FROM person;" test > C:\person5.html
【例14.18】使用mysql命令導出test數據庫中person表中的記錄到xml文件
mysql -u root -p --xml --execute="SELECT * FROM person;" test > C:\person6.xml
【例14.19】使用LOAD DATA命令將C:\person0.txt文件中的數據導入到test數據庫中的person表
LOAD DATA INFILE 'C:/person0.txt' INTO TABLE test.person;
【例14.20】使用LOAD DATA命令將C:\person1.txt文件中的數據導入到test數據庫中的person表,使用FIELDS選項和LINES選項,要求字段之間使用逗號‘,’間隔,全部字段值用雙引號括起來,定義轉義字符定義爲單引號‘\’’
LOAD DATA INFILE 'C:/person1.txt' INTO TABLE test.person
FIELDS
TERMINATED BY ','
ENCLOSED BY '\"'
ESCAPED BY '\''
LINES
TERMINATED BY '\r\n';
【例14.21】使用mysqlimport命令將C:\backup目錄下的person.txt文件內容導入到test數據庫中,字段之間使用逗號‘,’間隔,字符類型字段值用雙引號括起來,定義轉義字符定義爲問號‘?’,每行記錄以回車換行符「\r\n」結尾mysqlimport -u root -p test C:/backup/person.txt --fields-terminated-by=, --fields-optionally-enclosed-by=\" --fields-escaped-by=? --lines-terminated-by=\r\n