MongoDB/MySQL命令導入導出數據庫/表結構/數據/集合

前言

小編主要分享乾貨,以前MySQL時候用Navicat導入導出數據庫,現在換成MongoDB發現導入導出得用命令了,總結一下,如果有不用命令方式請指教。


MongoDB

導出導入數據庫集合

使用export導出數據庫集合到json文件
mongoexport -h localhost:27017 -u 'db_name' -p 'password' -d [db] -c [collection] -o a.json
  • -h 地址
  • -u 數據庫賬號名(沒有可省略)
  • -p 數據庫賬號密碼(沒有可省略)
  • -d 數據庫名
  • -c 數據庫集合名
  • -o 輸出文件路徑及文件名

示例:

mongoexport -h 127.0.0.1:27017 -u 'root' -p 'password' -d userDB -c user -o user.json
使用export導出數據庫集合到csv文件
mongoexport -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -c 表名 -f 字段 -q 條件導出 --type=csv -o 文件名 
  • -f 導出指字段,以字號分割,-f name,email,age導出name,email,age這三個字段
  • -u 數據庫賬號名(沒有可省略)
  • -q 可以根據查詢條件導出,-q ‘{ “uid” : “100” }’ 導出uid爲100的數據
  • -csv 表示導出的文件格式爲csv的,這個比較有用,因爲大部分的關係型數據庫都是支持csv,在這裏有共同點
  • -type 表示文件類型

示例:

mongoexport -h 127.0.0.1:27017 -u 'root' -p 'password' -d userDB -c user -f name -q '{"name":"張三"}' --type=csv -o user.csv
使用import導入數據庫集合json文件
mongoimport -h localhost:27017 -u 'db_name' -p 'password' -d [db] -c [collection] --upsert --file a.json
  • -upsert 插入或者更新現有數據
  • -file 文件路徑以及文件名
使用import導入數據庫集合csv文件
mongoimport -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -c 集合名 --type 文件類型 --headerline --upsert --file 文件名 
  • -headline 表示不導入首行(csv文件的首行是表頭)

示例:

mongoimport -h 127.0.0.1:27017 -u 'root' -p 'password' -d userDB -c user --type csv --headerline --upsert --file user.csv

以上命令可以通過Navicat導入導出嚮導進行完成。
小編在MongoDB數據庫導入時經常出問題,所以需要導入整個庫。

導出導入數據庫

導出數據庫命令
mongodump -h ip:port -u 用戶名 -p 密碼 -d 數據庫 -o 文件存在路徑 

示例:

mongodump -h 127.0.0.1:27017 -u 'root' -p 'password' -d userDB -o /var/db/ 
導入數據庫命令
mongorestore -h ip:port -u 用戶名 -p 密碼 -d 數據庫 --drop 文件存在路徑

示例:

mongorestore -h 127.0.0.1:27017 -u 'root' -p 'password' -d userDB --drop /var/db

注:如果Mongo設置賬號導致導入、導出失敗,需要加--authenticationDatabase admin參數


MySQL 命令行導出導入數據庫

導出數據和表結構
mysqldump -u${db_account} -p${password} ${db_name} > ${db_name}.sql
  • -u後面拼接數據庫賬號名
  • -p不拼密碼,待會回車會提示輸入密碼

示例:

mysqldump -uroot -p abc > abc.sql 
導出表結構
mysqldump -u${db_account} -p${password} -d ${db_name} > ${db_name}.sql
  • -d接數據庫名

示例:

mysqldump -uroot -p -d abc > abc.sql 
導入數據庫或表結構
mysql -u${db_account} -p${password} ${db_name} < ${db_name}.sql

示例:

mysql -uroot -p abc < abc.sql

MySQL數據庫可以用Navicat轉儲sql文件後再運行sql文件方式導入導出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章