[匯出] n) c: j$ s+ C7 p D
mysqldump -u userid -e -p db_Name > xxxxx.sql% \% `% G5 o, \5 X/ M
匯出一個table:mysqldump -p -u userid dbname tablename > 52avtv_dzx20.201506242307.sql
$ o. T' [9 z% A# W$ S" f匯出所有資料庫: mysqldump -p -u userid --all-databases > all-database.sql $ J# @4 s$ O+ Y8 K( a8 j
但是,匯到目的資料庫的使用者帳號及密碼有問題,所以還是每個資料庫個別搬,使用者帳號也個別匯出比較安全
4 V) z" S2 r& `. n0 v[只匯出結構] 參考: https://iter01.com/206843.html' l) o, K' e; s" U% H" o! f
mysqldump --opt -d 資料庫名 -u root -p > xxx.sql - H7 E+ @7 W) {
[只匯出資料]# W. @, m; ~' G
mysqldump -t 資料庫名 -uroot -p > xxx.sql
# r+ X ^, B$ B6 m3 j& d k' Z/ T/ j$ Z. G
注意: 當以上述指令備份時造成網站出現 "502 bad gateway",影響到nginx,只要加參數 --single-transaction --quick 就好了,如下:
; g0 E) m9 T' Mmysqldump -u userid -e -p --single-transaction --quick db_Name > xxxxx.sql) j/ ` T( B( G" f7 T
問題:mysqldump: Got error: 1017: Can't find file: 'pre_forum_rsscache' (errno: 2) when using LOCK TABLES
! t$ v2 z9 i( y$ I* f" @* s! W6 ]6 CSol: 只要在mysqldump的時候加上--lock-tables=false就可以解決問題。0 _9 ?; H# |# c5 u. T4 n5 ?
接著又出現: mysqldump: Couldn't execute 'show create table `pre_forum_rsscache`': Can't find file: 'pre_forum_rsscache' (errno: 2) (1017),以phpmyadmin登入查看卻看到pre_forum_rsscache 使用中ls /var/lib/mysql/52avtv_dz/pre_forum_rsscache* 發現只有 pre_forum_rsscache.frm 1個檔案 ,正常應該要有3個檔:8 t5 \6 A' R& f3 m! u
-rw-rw---- 1 mysql mysql 8852 Jun 3 16:05 pre_forum_rsscache.frm
9 q, ^" H* E; ^# u! y7 K% ^-rw-rw---- 1 mysql mysql 0 Jun 3 16:05 pre_forum_rsscache.MYD+ z% P* t' h. q# |; Y% R9 q5 I
-rw-rw---- 1 mysql mysql 1024 Jun 3 16:05 pre_forum_rsscache.MYI! d( N$ f8 E. j: i1 [5 z
Sol:
& P) P* q: L2 c. ?% L7 q) `9 a9 W在phpmyadmin ==SQL 下指令:
6 l6 \5 T' u C# w7 y4 Z2 b* T, I: Q- DROP TABLE IF EXISTS pre_forum_rsscache;
- CREATE TABLE pre_forum_rsscache (
- lastupdate int(10) unsigned NOT NULL DEFAULT '0',
- fid mediumint(8) unsigned NOT NULL DEFAULT '0',
- tid mediumint(8) unsigned NOT NULL DEFAULT '0',
- dateline int(10) unsigned NOT NULL DEFAULT '0',
- forum char(50) NOT NULL DEFAULT '',
- author char(15) NOT NULL DEFAULT '',
- `subject` char(80) NOT NULL DEFAULT '',
- description char(255) NOT NULL DEFAULT '',
- guidetype char(10) NOT NULL DEFAULT '',
- UNIQUE KEY tid (tid),
- KEY fid (fid,dateline)
- ) ENGINE=MYISAM DEFAULT CHARSET=utf8
複製代碼
; t4 {# g8 r& E: A6 G) u6 ]4 C再備份就正常了
/ ~: I3 B; P! }( p問題: 當使用mariadb 5.5.68 備份時出現error:mysqldump: Couldn't execute 'SHOW TRIGGERS LIKE 'pre\_portal\_topic\_pic'': Can't read dir of './db_name/' (errno: 24) (1018)9 F7 j/ u- |8 D9 s) T" B# Y
Sol: 這是open_files_limit(default=962) 太小,改為4096,由於它屬於read-only,故加在/etc/my.cnf
3 Q. Q+ a: P8 _' Y" @然後 service mariadb restart7 a8 h" y, v/ D' p/ s
# j8 o/ m( U# s
[有條件匯出]
/ ~0 J* [" A9 c; s2 Pmysqldump -u帳號 -p密碼 -h主機 資料庫 資料表 -w "sql條件" > 出輸路徑及檔案/ i: T8 n/ [! p
例:9 @' H& Q, @9 E0 a5 D, o
mysqldump -uroot -p123456 -hlocalhost -e AREA_UTF8 city -w "c_id<10 " > /home/web/a.txt! v! ^6 Y) _1 B( o+ [6 S! b% f: h
3 b" N0 R7 I( j0 M' f--no-create-info,-t
( Q" S) ` A9 \3 g: l7 ?只導出資料,而不添加 CREATE TABLE 語句;如果導出格式為SQL語句,則只有insert into部分。' j8 i$ R5 N+ _- S3 h
--no-data,-d+ d8 ~0 S- k5 B2 P$ |
不導出任何資料,只導出資料庫結構
9 P. C' ~* V. m3 k, ~--quick,-q
$ @+ l$ G, D; u在導出大量資料很有用,強制從 MySQL Server 查詢取得記錄直接輸出,而不是取得所有記錄後存在記憶體中。 i7 w7 ~/ n# B) e" r
@( a5 z: e0 D
# G2 K% f* f _9 _/ w" l[匯入]! H9 u8 r. Z4 p: G5 t' u% _1 f
mysql -u userid -p [-h localhost] db_Name < xxxxx.sql
. K$ n6 U w; U/ v: w匯入所有資料庫: mysql -u userid -p < all-database.sql
4 L8 x2 T. p! L& a% n' l2 s匯入一個table :
: ~. y" j! K; j4 e" ^mysql -u userid -p -D dbname < cc5278_dzx20.ip2c.201506242307.sql
% v! i: p9 W0 B! E& Y# h* mP.S如果匯入檔太大如7GB,則匯入檔案之前執行下列指令:, k/ R/ ~" v7 J3 `! W- w# f# f; g
mysql -uroot -p -e "set global net_buffer_length=1000000; set global max_allowed_packet=1000000000;"" `5 ?4 U3 {' R9 ^7 e/ z$ }' p
7 Y: F/ @" d1 d1 G& a) a# k9 U9 [[匯出後立即匯入到另一台主機]2 }/ ?% J3 p" ^& D+ U8 `) |& l% d
mysqldump -u [SOURCE_userid] -h [SOURCE_IP] -e -q --password=[SOURCE_PASSWORD] SOURCE_db_Name | mysql -u [DISTANCE_userid] --password=[DISTANCE_PASSWORD] -h [DISTANCE_IP] DISTANCE_db_Name ) E6 s5 \) F: P5 b! w1 b4 P
[設定匯入上限(內定2Mb) by phpmyadmin]; r6 g+ U: K$ l! D8 R* s7 w" N
參考http://www.av4u.info/forum.php?m ... e=1&extra=#pid20348
# P6 ?, { ~$ X# N0 e. {& }' k5 j. y/ o5 P: L6 a
% g. \4 [" Y/ ]' L9 \7 ?7 Y. ^
$ b. t* d' d. W; R
9 o7 D+ X" T( T# I6 q" e1 f, p, |, J$ o" w$ r$ L
' D2 x3 w) y! C7 y6 j9 G( Q
& M$ f4 w0 j) N' L. X2 F+ y4 C( x* ^$ \7 c
( C8 T; T( Z- i' j2 P8 b) r* ?8 D
2 N/ H; C) o! {
9 H, D4 I( j3 p0 O+ q! Z0 M9 G: t2 I( } c
|
|