mysql mysqldump只導出表結構或只導出數據的實現方法

mysql mysqldump 只導出表結構 不導出數據
代碼以下:
mysqldump --opt -d 數據庫名 -u root -p > xxx.sql
備份數據庫 
代碼以下:
#mysqldump 數據庫名 >數據庫備份名  
#mysqldump -A -u用戶名 -p密碼 數據庫名>數據庫備份名  
#mysqldump -d -A --add-drop-table -uroot -p >xxx.sql
1.導出結構不導出數據 
代碼以下:
mysqldump --opt -d 數據庫名 -u root -p > xxx.sql
2.導出數據不導出結構  
代碼以下:
mysqldump -t 數據庫名 -uroot -p > xxx.sql
3.導出數據和表結構  
代碼以下:( 出現中文亂碼時要加上--default-character-set=utf8   或着 gbk  就OK了)
mysqldump 數據庫名 -uroot -p --default-character-set=utf8 > xxx.sql
4.導出特定表的結構 
代碼以下:
mysqldump -uroot -p -B 數據庫名 --table 表名 > xxx.sql
5.導出函數及存儲過程 
代碼以下:(-ntd表示不導出表結構和數據,-R表示導出函數及存儲過程)
mysqldump -uroot -p -ntd -R 數據庫名 > xxx.sql
導入數據: 
  因爲mysqldump導出的是完整的SQL語句,因此用mysql客戶程序很容易就能把數據導入了: 

代碼以下: mysql

#mysql 數據庫名 < 文件名  
#source /tmp/xxx.sql

導出數據時若是沒有指定存儲路徑,則存放到mysql的bin目錄下 sql

可以使用mysqldump --help查看各參數 數據庫

奇怪錯誤處理:
  下面是導出存儲過程的代碼
  1 # mysqldump -u 數據庫用戶名 -p -n -t -d -R 數據庫名 > 文件名
  其中,-d 表示--no-create-db, -n表示--no-data, -t表示--no-create-info, -R表示導出function和procedure。因此上述代碼表示僅僅導出函數和存儲過程,不導出表結構和數據。可是,這樣導出的內容裏,包含了 trigger。再往mysql中導入時就會出問題,錯誤以下:
 
  ERROR 1235 (42000) at line **: This version of MySQL doesn't yet support ‘multiple triggers with the same action time and event for one table’
  因此在導出時須要把trigger關閉。代碼爲
  1 # mysqldump -u 數據庫用戶名 -p -n -t -d -R --triggers=false 數據庫名 > 文件名
  這樣導入時,會出現新的問題:
  ErrorCode:1418
  This function has none of DETERMINISTIC, NOSQL, or READS SQL DATA inits declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
  解決方法是,在/etc/my.cnf中找到[mysqld],在它下面添加這樣一行:
  1 log-bin-trust-function-creators=1
 
建立數據庫:CREATE DATABASE `total_admin` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
1.查看mysql大小
use 數據庫名  SELECT sum(DATA_LENGTH)+sum(INDEX_LENGTH)  FROM information_schema.TABLES where TABLE_SCHEMA='數據庫名';
獲得的結果是以字節爲單位,除1024爲K,除1048576爲M。
 
2.查看錶的最後mysql修改時間select TABLE_NAME,UPDATE_TIME from INFORMATION_SCHEMA.tables where TABLE_SCHEMA='數據庫名'; less

相關文章
相關標籤/搜索