52AV手機A片王|52AV.ONE
標題:
MySQL 匯出匯入指令
[打印本頁]
作者:
IT_man
時間:
2015-6-23 08:22
標題:
MySQL 匯出匯入指令
[匯出]
! D! X& q$ D- {4 A8 j* m
mysqldump -u userid -e -p db_Name > xxxxx.sql
8 u9 g% @( U3 z4 q, s! K/ W9 q
匯出一個table:mysqldump -p -u userid dbname tablename > 52avtv_dzx20.201506242307.sql
6 a# |8 _: f9 @+ T0 z6 x
匯出所有資料庫: mysqldump -p -u userid --all-databases > all-database.sql
+ Y& k; E" l) K9 f/ O3 y
但是,匯到目的資料庫的使用者帳號及密碼有問題,所以還是每個資料庫個別搬,使用者帳號也個別匯出比較安全
- i+ s! w8 o! c: |2 Q
[只匯出結構]
參考:
https://iter01.com/206843.html
% p5 b. [1 g7 b) r2 U: R
mysqldump --opt -d 資料庫名 -u root -p > xxx.sql
* ?! b! |; S4 ]2 z* B4 P! ^
[只匯出資料]
( f; q) W, w- _- |4 w
mysqldump -t 資料庫名 -uroot -p > xxx.sql
- {1 t% G; w- D' b h) }3 c* t
2 H# }0 d6 z# K
注意:
當以上述指令備份時造成網站出現 "502 bad gateway",影響到nginx,只要加參數
--single-transaction --quick 就好了,如下:
" n2 }' V0 t' `, a; ?6 \
mysqldump -u userid -e -p
--single-transaction --quick
db_Name > xxxxx.sql
4 p1 I3 D; j& F1 p: K
問題:
mysqldump: Got error: 1017: Can't find file: 'pre_forum_rsscache' (errno: 2) when using LOCK TABLES
, m! y$ S& Z! A- S
Sol: 只要在mysqldump的時候加上--lock-tables=false就可以解決問題。
0 M+ T; d. M3 a; e3 p' L i
接著又出現: 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個檔:
. C' Q( C% H3 I4 v( A* r; {# {& Q
-rw-rw---- 1 mysql mysql 8852 Jun 3 16:05 pre_forum_rsscache.frm
- N, J5 Z5 E( |6 h
-rw-rw---- 1 mysql mysql 0 Jun 3 16:05 pre_forum_rsscache.MYD
8 A% @ G0 q, N/ w7 X5 Q0 {
-rw-rw---- 1 mysql mysql 1024 Jun 3 16:05 pre_forum_rsscache.MYI
9 n& Q$ n7 O! D" x: v* W% x% `
Sol:
5 G+ U. m3 G2 ^. o7 E$ p5 P
在phpmyadmin ==SQL 下指令:
1 O. Y4 B4 U6 h, T* K, R
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
複製代碼
- C7 z* e$ ]$ C, t" |
再備份就正常了
4 K! u d3 ^6 F
問題:
當使用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)
- O. m$ ^5 j$ h
Sol: 這是
open_files_limi
t(default=962) 太小,改為4096,由於它屬於read-only,故加在/etc/my.cnf
5 d+ q, T; s/ S, B5 r6 j
然後 service mariadb restar
t
. D0 D2 X& @ y& U
$ N# F8 u# B: p h/ `
[有條件匯出]
4 X0 o; Y$ G* t/ \9 f1 O* O. q$ t
mysqldump -u帳號 -p密碼 -h主機 資料庫 資料表 -w "sql條件" > 出輸路徑及檔案
) f. J7 o" k2 o
例:
0 V9 C$ l# w" w* i# g4 R3 d
mysqldump -uroot -p123456 -hlocalhost -e AREA_UTF8 city -w "c_id<10 " > /home/web/a.txt
. n% x2 Z# X% ^: p) s
\1 D" G+ p+ D8 |7 h$ r3 m! ~* y5 l
--no-create-info,-t
: f8 k2 l" |6 D
只導出資料,而不添加 CREATE TABLE 語句;如果導出格式為SQL語句,則只有insert into部分。
. n6 s$ C$ d6 U" q3 H; R
--no-data,-d
! K; b+ k: \8 ^5 F; J" O+ u. d& i5 e
不導出任何資料,只導出資料庫結構
]+ N4 M$ J b
--quick,-q
& K/ g" f( D% S. N% e6 i: m
在導出大量資料很有用,強制從 MySQL Server 查詢取得記錄直接輸出,而不是取得所有記錄後存在記憶體中。
' |( k& x# P6 W1 I
9 k( [6 r. t% ]
7 T$ N+ W' f$ t5 q+ r3 j4 b7 {
[匯入]
# x+ n. I/ T% J% h8 p9 e1 E
mysql -u userid -p [-h localhost] db_Name < xxxxx.sql
$ b- g) c: Q: {8 C4 o
匯入所有資料庫: mysql -u userid -p < all-database.sql
& ^+ P0 w. V4 ~+ X1 I: A* y/ a
匯入一個table :
9 ?) k! d2 Z4 Q
mysql -u userid -p -D dbname < cc5278_dzx20.ip2c.201506242307.sql
4 ~$ g5 L& Q( T# O
P.S如果匯入檔太大如7GB,則匯入檔案之前執行下列指令:
( i( [( [! ~6 i7 j, L
mysql -uroot -p -e "set global net_buffer_length=1000000; set global max_allowed_packet=1000000000;"
/ C9 `! U Z2 B3 x) L/ u6 y7 S/ r
' j6 s4 H7 W9 C
[匯出後立即匯入到另一台主機]
- ]: }: J1 W5 N5 U3 V) c& |2 a
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
. K; f$ ^; r; e* }/ J8 w# e
[設定匯入上限(內定2Mb) by phpmyadmin]
( b/ f6 M& A5 Z: L8 }' i% x
參考
http://www.av4u.info/forum.php?m ... e=1&extra=#pid20348
) n5 Z4 h1 p3 H/ _5 S1 S0 K: R
# }/ a& q9 O z' `, Z, H V0 D
6 B# g! A. ~8 z1 ?& I4 E( Q# M
4 p# {, n4 d) Q, W( u9 S" D
, |% Q0 j- v! L( ]4 s
8 ^, k- \! Q8 L. b0 m6 I
- j. v" [5 [: b, o h8 k
/ K: W. T7 e0 f
. Z; t ]1 X$ c/ @
' B2 ^2 ~5 |$ L: t
$ F8 R; q& R4 N6 K! E& ^8 m/ p
m; V7 s( U) s
0 C0 A. I+ w( v$ H9 A
9 ~) r1 p2 m$ S; x, h8 T
9 u0 E- d% P$ c# t
歡迎光臨 52AV手機A片王|52AV.ONE (https://www.52av.one/)
Powered by Discuz! X3.2