標籤:
一直沒怎麼用過mysql資料庫, 今天用mysqldump備份了一下表結構, 記錄一下遇到的問題
1. mysqldump預設匯出沒有事務和預存程序, 如果想匯出這些可以用 -E 和 -R[--routines Dump stored routines (functions and procedures)]
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. 從本地匯入資料
mysql --user=${user} --password=${passwd} --host=${mysql_ip} ${database} --default-character-set=utf8 <<EOFLOAD DATA LOCAL INFILE ‘${file}‘ INTO TABLE ${table} FIELDS TERMINATED BY ‘,‘;
5. 從target伺服器上匯入資料
mysql --user=${user} --password=${passwd} --host="172.0.0.1" ${database} --default-character-set=utf8 <<EOFLOAD DATA INFILE ‘${file}‘ INTO TABLE ${table} FIELDS TERMINATED BY ‘,‘;
資料庫和資料在同一台伺服器
6. mysql的注釋
mysql的注釋有4 種 :
“#” : # 開頭到行尾的都為注釋,只能注釋一行
“-- ” (2個減號 一個空格) : -- 開頭到行尾都為注釋 , 只能注釋一行
“/* xxx */" : 可以注釋多行,但是一定要閉合,不然出錯
”/*! 數字 代碼 */" : 可以跨行注釋,但是一定要閉合,不然出錯。
其中 , ”/*! 數字 代碼 */" 是有特殊含義的
例如: /*!40101 SET NAMES gbk */; 代表的是 如果mysql 版本大於4.0.1.01 ,就執行後面的 set names gbk 這句代碼。
這就有一個好處,這樣就可以把mysql 特有的功能用這種注釋,給注釋掉,對於非mysql資料庫可以正常運行,不需要修改,
而對於mysql 資料庫,就可以利用這些特性。
mysql的注釋