起因
阿里云安装mongodb4.0或以上版本都有很多人遇到困难,因为这里有一点是很让人无法接受的,如果自行手动一步步安装即很多配置系统环境变量都很难配对,特别是使用service xxx restart 等完美指令在运行期间。而最官方简单的方法就是apt install了,不过肯定是因为墙的问题大部分人都不太可能直接安装成功,而换成阿里云自己的apt源后发现最新版本只到3.6,是不是觉得很酸爽?不知道阿里云是不是出于想强推自己的mongodb 4.0rc的云服务库服务mongodb版所以迟迟不同步官方源过去。
有鉴于此今天我们来做一个相对完美的安装方法,仅供大家参考学习,毕竟mongodb4.0才开始支持事务,换言之真正能做到把sql数据库换掉从4.0版本才算达到基本要求。配全lookup来做外表关联(相当于join)这样的操作,再配合json schema作数据表结构限制等基本上已经具备了换掉传统sql数据库的条件,当然还多了很多nosql自身的优势。以下是相关官方资料:
mongodb json schema : https://docs.mongodb.com/manual/reference/operator/query/jsonSchema/
mongodb lookup:
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/
更多相关技术以后再一一祥解。
解决办法
解决办法其他是mongodb官方提供了,因为从较早前一段时间开始mongodb官方下载中心已经提供了deb安装文件的下载类型,这种类型的安装包其实是linux石像鬼分支的通用安装包文件类型。我们可以通过下载相关安装文件,再通过指令执行安装即可。以下是dpkg指令的相关说明:
dpkg -i package.deb安装包dpkg -r package删除包dpkg -P package删除包(包括配置文件)dpkg -L package列出与该包关联的文件dpkg -l package显示该包的版本dpkg –unpack package.deb解开 deb 包的内容dpkg -S keyword搜索所属的包内容dpkg -l列出当前已安装的包dpkg -c package.deb列出 deb 包的内容dpkg –configure package配置包
使用示例:sudo dpkg -i xxxxx.deb
操作演练
1.mongodb官方下载中心:https://www.mongodb.com/download-center/community?jmp=docs
选择ubuntu 16.04 x64版本,如下图所示:
下载完成后我们可以通过sftp把deb文件上传到阿里云服务器上,然后通过指令:sudo dpkg -i mongodb-org-server_4.0.6_amd64.deb
2.执行依赖包安装:
sudo apt-get install libcurl4 openssl
3.执行安装包:
sudo dpkg -i mongodb-org-server_4.0.6_amd64.deb Selecting previously unselected package mongodb-org-server.(Reading database ... 165879 files and directories currently installed.)Preparing to unpack mongodb-org-server_4.0.6_amd64.deb ...Unpacking mongodb-org-server (4.0.6) ...Setting up mongodb-org-server (4.0.6) ...Adding system user `mongodb' (UID 110) ...Adding new user `mongodb' (UID 110) with group `nogroup' ...Not creating home directory `/home/mongodb'.Adding group `mongodb' (GID 119) ...Done.Adding user `mongodb' to group `mongodb' ...Adding user mongodb to group mongodbDone.Processing triggers for man-db (2.7.5-1) ...
通过指仅查看mongodb是否安装正常,查看版本号:
mongod -versiondb version v4.0.6git version: caa42a1f75a56c7643d0b68d3880444375ec42e3OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016allocator: tcmallocmodules: nonebuild environment: distmod: ubuntu1604 distarch: x86_64 target_arch: x86_64
再测试service操作是否正常
service mongod restart
只要没有报任何错误出来即为服务注册成功安装正确
再多讨论请关注我或留言一起相互学习。谢谢大家支持!