关于mongodb当中的数据导入到mysql数据。

时间:2021-04-30 06:41:44

昨天有人问题mongodb的数据怎么导入到mysql关系型数据库,当时真不知道。今天查询了资料,然后自己实践了一下。在这里记录一下:

这里用到MongoDB的mongoexport,这个功能是将mongodb的数据导成csv文件,然后再讲csv文件当中的数据加载到mysql数据库,实现将mongdb数据库的数据导入到myql当中。

mongoexport -h 10.100.200.198 -u zhuyu -p zhuyu -d ai -c users -f _id,age --type=csv -o /application/mongodb/data/users.csv --authenticationDatabase ai

   参数解释:

      -h 指定MongoDB所在的服务器

     -u  数据库ai的用户名、

     -p 这个用户的密码

    -d  数据库的名称

    -c  集合的名字

    -f  集合当中的字段的名称。

   --type 这里指定的csv的文件。

    -o  指定的文件的保存路径

    -- authenticationDatabase 指定的是数据库的名字 

    在这里指定报了如下的错

   Failed: not authorized on ai to execute command { count: "users", query: {} }

   看到这个是显示没有执行权限,这里查询权限好像没有;

    最后发现,我创建数据库的时候指定了用户名和密码(卧槽)0,所以就登录不了数据库,创建语句如下:

use ai
db.createUser({user:"zhuyu",pwd:"zhuyu",roles:[{role:"dbAdmin",db:"ai"},{role:"readWrite",db:"ai"}]})  

关于mongodb当中的数据导入到mysql数据。

 

加上之后数据导入成功了。

接下来就是将数据导入到mysql数据库。在这里我们需要创建一个同样的数据库,而且创建和MongoDB数据库对应的数据集的表。然后使用如下的命令讲数据导入到mysql当行。命令如下

load data local infile '/application/mongodb/data/users.csv'
into table `users` character set utf8
fields terminated by ',' optionally enclosed by '"'
lines terminated by '\n'
ignore 1 lines;

 关于mongodb当中的数据导入到mysql数据。

 

    至此csv文件当中的数据已经导入到mysql数据当中了。