前言
小编主要分享干货,以前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文件方式导入导出