mysql数据库迁移导入到mongodb详细教程
作者:秋了秋 发表时间:2017年07月28日
一直都想用nodejs改造我的博客,由于时间关系和价值衡量(懒)没有付诸行动,近来访问我的博客也变慢了,wordpress这开源框架着实臃肿,而且这是国外的产品,引用了许多外部资源造成打开慢也就理所当然了,咬牙切齿间心血来潮,打算抛弃后端php框架用node原创一个网站出来。当然转node也不只是提快访问速度体验,废话不多数,待到我成功从wordpress转成node了会有大作交流~。前期首要任务就是数据库的迁移,数据库也不用mysql了,直接mongodb,这两者的对比就不说了,自行了解。
首先用mysql工具,我这里以phpmyadmin数据库管理工具(大众化工具),进入你要导出的数据库,选中所有表,点击上面的“导出”数据。
跳转到导出页面,这里的设置一定要注意下,不能全选数据库的表,只能一个个表导出,单击以获取某个表,每个表导出一个csv文件。
格式这里选择csv格式。
滚动到csv设置模块设置,勾选“首行保存字段名”,这里很关键,不勾选的话,你导入到mongodb中会出错:Failed: fields cannot be identical: '' and '',主要原因是表头没了,也就是字段名没了。
把该数据库的所有表都导出之后,就通过mongodb命令行导入到mongo数据库中,先进入到mongodb安装目录的bin目录里面。
运行导入文件命令:mongoimport -h 127.0.0.1 -d mizuiren -c users --type csv --file D:\users.csv --headerline --upsert
要先创建一个数据库,表可以不用创建,导入数据的时候会自动创建,如果没有配置-c,mongo会自动给创建一个与csv文件名相同的表,命令的配置参数为:
-h host主机名,如果是本地的话不用改,就是127.0.0.1 -d 指定把数据导入到哪一个数据库中 -c 指定把数据导入到哪一个集合中 --type 指定导入的数据类型 --file 指定从哪一个文件中导入数据(文件的路径) --headerline 仅适用于导入csv,tsv格式的数据,表示文件中的第一行作为数据头(表头) --upsert 以新增或者更新的方式来导入数据
出现导入多少文件的信息就表示导入成功了。
把所有csv文件导入成功之后就可以看到数据了,我这里用了mongovue来查看数据。
注意:mongodb 3.X版本默认是wiredTiger 引擎,2.x默认是mmapv1 引擎,如果你用了最新版的mongodb, 默认用mongovue是查看不到数据的,要转成mmapv1就可以显示了。创建数据库的时候用以下命令,注意路径。
mongod -storageEngine mmapv1 -dbpath E:\mongodb\data
或者你也可以通过命令行来查看导入的数据:
wordpress转nodejs就成功一大截了,程序不是问题,接下来就是服务器端的部署了。