[匯出]
' B7 i; [* \& e4 kmysqldump -u userid -e -p db_Name > xxxxx.sql: r4 b3 j |3 F% ^) |7 R* g5 l7 O
匯出一個table:mysqldump -p -u userid dbname tablename > 52avtv_dzx20.201506242307.sql
( ? |0 q7 J* l' g S匯出所有資料庫: mysqldump -p -u userid --all-databases > all-database.sql
- L$ }) l$ |1 I$ T: S' z 但是,匯到目的資料庫的使用者帳號及密碼有問題,所以還是每個資料庫個別搬,使用者帳號也個別匯出比較安全
& c7 j! y _( J- _' R8 ~9 I% y[只匯出結構] 參考: https://iter01.com/206843.html
( o( Z: a) ?9 H( @( W7 |mysqldump --opt -d 資料庫名 -u root -p > xxx.sql , Q9 d) Y" K; ^& w* q- b% ]
[只匯出資料]
7 T5 p( C: }6 V/ ^3 dmysqldump -t 資料庫名 -uroot -p > xxx.sql; q1 g8 J% e, K
& ~0 k" O; F" a0 q9 E6 E2 j2 w
注意: 當以上述指令備份時造成網站出現 "502 bad gateway",影響到nginx,只要加參數 --single-transaction --quick 就好了,如下:
% M9 |4 k+ r" ^mysqldump -u userid -e -p --single-transaction --quick db_Name > xxxxx.sql8 ~& T$ |. J" {9 p* R% _
問題:mysqldump: Got error: 1017: Can't find file: 'pre_forum_rsscache' (errno: 2) when using LOCK TABLES" R9 ^4 S9 ?( @$ f/ y( O# V/ |
Sol: 只要在mysqldump的時候加上--lock-tables=false就可以解決問題。/ V. I: K; h9 w0 v
接著又出現: 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個檔:: h0 ^6 O! J/ A* u* r- J! U/ m( h
-rw-rw---- 1 mysql mysql 8852 Jun 3 16:05 pre_forum_rsscache.frm
$ K) ]. i" @5 _6 b) P0 j" [8 r-rw-rw---- 1 mysql mysql 0 Jun 3 16:05 pre_forum_rsscache.MYD: g) d4 o8 j) B+ t4 e3 j/ A
-rw-rw---- 1 mysql mysql 1024 Jun 3 16:05 pre_forum_rsscache.MYI/ Y5 I7 H4 g$ k& l3 C9 B6 l
Sol:
( ?/ r) c5 r8 u7 T在phpmyadmin ==SQL 下指令:
; n+ ?9 L x$ D0 B; A2 s- 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
複製代碼
* N' ?/ u- J- O2 i, k% ^8 P再備份就正常了- @+ J# d* ?: D( f( n9 s# O) |$ E
問題: 當使用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)
: n6 `/ |$ e8 @ X* {! ^4 bSol: 這是open_files_limit(default=962) 太小,改為4096,由於它屬於read-only,故加在/etc/my.cnf ( N/ Q$ T5 [5 r8 @
然後 service mariadb restart' r- T% t( ^! k
# {0 C9 N8 ?6 [! W, O7 a
[有條件匯出]
# x# D. l+ ]# G& a( ]mysqldump -u帳號 -p密碼 -h主機 資料庫 資料表 -w "sql條件" > 出輸路徑及檔案
9 d+ \" J o) w0 Y" A( P5 w) e例:
) T) H( {% _: V7 P/ `7 ^8 ?mysqldump -uroot -p123456 -hlocalhost -e AREA_UTF8 city -w "c_id<10 " > /home/web/a.txt& k( \7 k, u0 Z4 w6 Z" \+ p
! g0 t0 N! N/ p; P
--no-create-info,-t
: N0 T' r! p" o. i只導出資料,而不添加 CREATE TABLE 語句;如果導出格式為SQL語句,則只有insert into部分。7 A4 |& p9 {$ m: ?6 \
--no-data,-d
& c4 m# Y9 J9 m c" v' m( w不導出任何資料,只導出資料庫結構
8 z! Z# I+ x4 p. o2 s; }! S& l--quick,-q
! T( C# L, Q% o在導出大量資料很有用,強制從 MySQL Server 查詢取得記錄直接輸出,而不是取得所有記錄後存在記憶體中。- Y4 O% b' e# c$ {' n7 W! W1 c) m/ K4 [
, Y a9 v! A: X0 s- l( \ p( X k) A1 i
[匯入]
' W( o5 ?* u& u* d- E2 |) Y3 Q; M5 R# ?" Tmysql -u userid -p [-h localhost] db_Name < xxxxx.sql: d9 r6 V# i2 ?8 q7 D* m
匯入所有資料庫: mysql -u userid -p < all-database.sql0 h5 i* t/ q# A! ?0 X* B+ T1 G
匯入一個table :9 g2 S, \7 X! m& ~7 d( @
mysql -u userid -p -D dbname < cc5278_dzx20.ip2c.201506242307.sql
' H- H% W' n# p9 U( l7 hP.S如果匯入檔太大如7GB,則匯入檔案之前執行下列指令:
4 A$ p* x' J! I' a1 T: gmysql -uroot -p -e "set global net_buffer_length=1000000; set global max_allowed_packet=1000000000;"+ U. @' C& j5 w# T' [. v, F8 g0 @
3 { L: m/ U% q9 u* d+ O7 p
[匯出後立即匯入到另一台主機]/ d0 Q$ U% k2 b7 s& x, P
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
9 o. R2 _ z+ A/ H2 l; T: N[設定匯入上限(內定2Mb) by phpmyadmin]
* {0 ]6 m% ?+ H5 a參考http://www.av4u.info/forum.php?m ... e=1&extra=#pid20348% ?* Q7 @. v/ i& ]
- W& n3 |9 J6 W* X, F; ?6 S; B1 G
8 P+ ~7 @9 u( S! m5 E5 ^4 Z7 ?' Q; a/ W; [
; W4 [: U3 _: i5 Z6 Q+ X; @7 u" K
" Q2 ] a* S( M; z2 V$ d! x: ]2 u, v; F: r) ^
) m& t& ]" Y7 V
8 j; ^1 g: k3 }6 x* H$ v2 ^2 [6 R! y
+ y) J# Q M3 y9 Y: Y
+ m! e; C. Y$ v5 H$ x. {
2 o+ u! R* V) H' f
, w$ ^! G4 E/ b/ t
& ^$ k; G0 z O5 g. ^/ S
) b- _5 [; n) }! I# n |
|