- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
环境
Linux Mint 17.1
本地主机
27017
背景
我安装了 MongoDB
:
apt-get install mongodb-10gen=2.4.9
然后我“固定”了包,这样就不会对其应用任何更新:
echo "mongodb-10gen hold" | sudo dpkg --set-selections
期望的行为r
我想升级到最新版本的 MongoDB,正在查看有关此过程的官方指南:
http://docs.mongodb.org/manual/release-notes/2.6-upgrade
早期声明:
To begin the upgrade procedure, connect a 2.6 mongo shell to your MongoDB 2.4 mongos or mongod and run the db.upgradeCheckAllDBs() to check your data set for compatibility.
问题
如何将 2.6 mongo shell
连接到 2.4.9 mongod
?
我猜想我需要安装 2.6 mongo shell
并运行它,但是:
我已经完成了所有数据库的mongodump
,所以有一个备份。
最佳答案
我尝试单独安装 mongo
2.6,但这导致其他包被标记为删除。我最终只是卸载旧包并重新安装新包,并将过程包含在此处以供引用。
下面的一些步骤没有用,但我已经将它们和它们的结果作为尝试的文档包括在内。我之前对所有数据库进行了 mongodump
,因此有一个备份。
最终结果是,除了 admin
数据库恢复之外,目前一切似乎都在“工作”。
01. 关闭 mongod
mongo
use admin
db.shutdownServer()
来自:http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/
02. 删除了 mongodb-10gen
的“固定包”状态:
echo "mongodb-10gen install" | sudo dpkg --set-selections
来自:https://help.ubuntu.com/community/PinningHowto
03. 然后我尝试安装最新的 mongo
:
sudo apt-get install -y mongodb-org-shell
来自:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
04. shell版本好像更新了:
mongo --version
MongoDB shell version: 2.6.6
05. 但是后来我无法连接 mongo
:
mongo
connecting to: test
2015-01-04T00:08:50.482+1000 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2015-01-04T00:08:50.483+1000 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed
或mongod
:
mongod
The program 'mongod' is currently not installed. You can install it by typing:
sudo apt-get install mongodb-server
06. 我运行了以下命令以查看 apt-get 安装/删除的历史记录:
less /var/log/apt/history.log
得到:
Start-Date: 2015-01-04 00:02:08
Commandline: apt-get install -y mongodb-org-shell
Install: mongodb-org-shell:amd64 (2.6.6)
Remove: mongodb-10gen:amd64 (2.4.9)
End-Date: 2015-01-04 00:02:21
07. 我跑了:
dpkg --get-selections
看到了:
mongodb-10gen deinstall
我认为“卸载”意味着它被标记为删除。
08. 我决定删除所有 mongodb-10gen
包:
sudo apt-get purge mongodb-10gen
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
gir1.2-clutter-gst-2.0 gir1.2-ges-1.0 gstreamer1.0-gnonlin libav-tools
libavdevice53 libavfilter3 libavresample1 libges-1.0-0 libgoocanvas-common
libgoocanvas3 libmlt++3 libmlt-data libmlt6 libqjson0 libquicktime2
libsoprano4 melt python-dateutil python-gst-1.0 python-matplotlib
python-matplotlib-data python-mlt python-pygoocanvas python-pyparsing
python-tz python3-bs4 python3-markdown shared-desktop-ontologies
soprano-daemon wkhtmltopdf
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
mongodb-10gen*
0 to upgrade, 0 to newly install, 1 to remove and 3 not to upgrade.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Y
(Reading database ... 246460 files and directories currently installed.)
Removing mongodb-10gen (2.4.9) ...
Purging configuration files for mongodb-10gen (2.4.9) ...
dpkg: warning: while removing mongodb-10gen, directory '/var/lib/mongodb' not empty so not removed
来自:https://askubuntu.com/a/147177
09. 我备份了无法删除的目录,即/var/lib/mongodb
:
sudo cp -avr /var/lib/mongodb/ /home/
10. 然后删除它。
cd /var/lib/
sudo rm -rf mongodb/
11. 我搜索了一下是否还有 mongodb-10gen
包:
dpkg --get-selections | grep "mongodb-10gen"
什么也没返回。
12. 我通过 Synaptic Package Manager 安装了版本为 2.6.6 的 mongodb-org
。
13. 我检查了所有 mongodb 包的版本是否相同:
mongodump --version
mongorestore --version
mongo --version
mongod --version
mongos --version
# all returned 2.6.6
14. 然后我对每个数据库转储执行了一个 mongorestore
,例如:
mongorestore --db dname_01 /path/to/dump/dbname_01/
mongorestore --db dname_02 /path/to/dump/dbname_02/
它似乎适用于所有数据库,但在 admin
数据库上失败:
assertion: 17415 Cannot restore users with schema version 1 to a system with server version 2.5.4 or greater
users
数据库抛出了一些异常,例如:
Restoring to users.pending_registrations without dropping. Restored data will be inserted without raising errors; check your server log
Restoring to users.roles without dropping. Restored data will be inserted without raising errors; check your server log
Restoring to users.users without dropping. Restored data will be inserted without raising errors; check your server log
15. 我运行了 db.upgradeCheckAllDBs()
:
mongo
use admin
db.upgradeCheckAllDBs()
Checking database local
Checking collection local.startup_log
Checking collection local.system.indexes
Checking database dname_01
...
Checking database admin
Everything is ready for the upgrade!
true
来自:http://docs.mongodb.org/manual/release-notes/2.6-upgrade/#preparedness
关于mongodb - 如何将 2.6 mongo shell 连接到 2.4.9 mongod?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27755054/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!