一直沒怎麼用過mysql數據庫, 今天用mysqldump備份了一下表結構, 記錄一下遇到的問題mysql
1. mysqldump默認導出沒有事務和存儲過程, 若是想導出這些能夠用 -E 和 -R[--routines Dump stored routines (functions and procedures)]sql
2. mysqldump默認導出表中是帶着觸發器的, 不要觸發器能夠用--skip-triggers數據庫
3. 默認導出是連數據一起導出,不要數據能夠用(-d, --no-data)服務器
mysqldump --host=${source_ip} --user=${user} --password=${passwd} \ --no-data --databases ${database} --table ${table} -R -E >/tmp/${table}.sql
4. 從本地導入數據spa
mysql --user=${user} --password=${passwd} --host=${mysql_ip} ${database} --default-character-set=utf8 <<EOF LOAD DATA LOCAL INFILE '${file}' INTO TABLE ${table} FIELDS TERMINATED BY ',';
5. 從target服務器上導入數據code
mysql --user=${user} --password=${passwd} --host="172.0.0.1" ${database} --default-character-set=utf8 <<EOF LOAD DATA INFILE '${file}' INTO TABLE ${table} FIELDS TERMINATED BY ',';
數據庫和數據在同一臺服務器
6. mysql的註釋blog
mysql的註釋有4 種 :
「#」 : # 開頭到行尾的都爲註釋,只能註釋一行
「-- 」 (2個減號 一個空格) : -- 開頭到行尾都爲註釋 , 只能註釋一行
「/* xxx */" : 能夠註釋多行,可是必定要閉合,否則出錯
」/*! 數字 代碼 */" : 能夠跨行註釋,可是必定要閉合,否則出錯。
其中 , 」/*! 數字 代碼 */" 是有特殊含義的
例如: /*!40101 SET NAMES gbk */; 表明的是 若是mysql 版本大於4.0.1.01 ,就執行後面的 set names gbk 這句代碼。
這就有一個好處,這樣就能夠把mysql 特有的功能用這種註釋,給註釋掉,對於非mysql數據庫能夠正常運行,不須要修改,
而對於mysql 數據庫,就能夠利用這些特性。事務