centos6.5环境下的MongoDB迁移至Windows Server 2022,亲测可用:
一、备份导出:
在旧服务器下,确保MongoDB正在运行的情况下,将里面的我们需要的业务表数据导出(我只导出业务表数据,admin和local的我都没有导出):
通过mongo命令进入mongo shell
键入show dbs :查看所有db
键入use db名称 :选择进入db
键入show collections :查看该db下所有的集合
导出collection为json文件:
mongoexport --host 你的服务器ip(或127.0.0.1) --port 27017 --db 你的db名称 --collection 你的collection名称 --out 你导出的collection的json文件名称.json
例如:
mongoexport --host 10.3.31.33 --port 27017 --db xkcj_party --collection article --out article.json
二、在Windows server 2022服务器安装 3.0.6版本MongoDB:
各种服务器的MongoDB的各版本 官方下载地址:
https://www.mongodb.com/try/download/community-edition/releases/archive
我是为了方便迁移,下载的MongoDB版本和原服务器一个版本的MongoDB,只不过下载的是Windows 版本的:
而且官网3.0.6版本的MongoDB并没有适配Windows Server 2022版本的,所以我直接下载的windows_x86_64 x64版的:
将zip压缩包解压,
里面只有一个bin文件夹,需要自己手动创建一个存放数据的文件夹,我创建的是data文件夹,
还需要创建一个日志文件夹,这样看起来整齐,也好管理,我创建的是logs文件夹,
另外需要自己创建mongo的配置文件,我创建的是mongo.conf
我还在logs里面创建了一个mongo.log
mongo.conf的配置内容:
#数据库路径
dbpath=E:\mongodb\data
#日志输出文件路径
logpath=E:\mongodb\logs\mongo.log
#错误日志采用追加模式
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
#端口号 默认为27017
port=27017
其他的配置可按需自己调整
配置环境变量:
三、启动MongoDB
进入mongo的bin文件夹,在文件路径上键入cmd回车
执行命令 mongod --config "E:\mongodb\mongo.conf" 测试一下,logs下边会有日志文件生成
①执行命令:
mongod --dbpath=E:\mongodb\data --logpath=E:\mongodb\logs\mongo.log --install --serviceName "MongoDB"
--dbpath=后边的路径改成你自己的data路径,--logpath=改成你自己的日志文件路径
(如果这个命令不行就尝试一下:mongod --config "E:\mongodb\mongo.conf" --install --serviceName "MongoDB")
运行命令:
②net start mongodb 或者net start MongoDB 启动mongo
(如果启动没有成功,运行sc delete mongodb删除服务,再运行①和②即可)
Win+R 输入 services.msc 进入服务,可以看到MongoDB的运行状态,右键属性启动类型修改为手动
打开浏览器访问127.0.0.1:27017
访问成功
或者在cmd命令窗口执行mongo进入mongo shell 用show dbs查看db
然后在防火墙设置中新增一个入栈规则,将27017端口添加上去,外部服务器就可以访问到本机的MongoDB服务了
四、数据导入
进入到MongoDB的bin目录下,cmd回车
执行导入命令
mongoimport --host 你的新服务器的ip --port 27017 --db 你要导入的db名称 --collection 你要导入的集合名称 --file 你要导入的json文件的完整路径.json
例如:
mongoimport --host 10.3.33.32 --port 27017 --db xkcj_party --collection bzdt --file E:\mongo_data_json\bzdt.json
导入成功会有提示导入成功,且会显示导入的数据条数