mongodb安装(linux版)
1.首先到官网下载安装包(版本自定,现在已经有4.0以上版本了.)地址如下(下载的时候要开着ssr下载,要不然下载链接打不开).
注意下载的时候要根据自己的系统型号进行服务的下载.
2.在服务器上创建一个数据包安装目录
mkdir -p /data/
本地hosts做好解析
[root@Master ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.15.150 mdb1
192.168.15.151 mdb2
192.168.15.152 mdb3
3.将已经下载好的tar包上传到/data目录中.并进行解压.
tar xvf mongodb-linux-x86_64-ubuntu1604-3.6.8.tgz
并将已经解压好的目录重命名为mongodb 以便于后续管理使用
4.在环境变量中添加解压后的mongo服务的bin目录对应的环境变量到 家目录下的.bashrc文件中.
#mongodb
MONGODB_HOME=/home/mdb
PATH=$PATH:$MONGODB_HOME/bin
添加完成后
source .bashrc
加载环境变量到系统中生效.
5.查看是否生效
mongod -version #能够查询出内容表示安装成功
6.创建配置文件,数据,日志,pid文件存放目录
cd /home/mdb/
mkdir -p conf data logs pid
7.修改配置文件.并将配置中的路径指向创建目录对应路径中.
将路径修改成现有目录的路径中.
还有就是其他的参数.根据情况不同配置不同的参数.例如内存限制之类的.
8.指定配置文件启动服务.
[root@Master bin]# mongod -f ../conf/mongodb.conf
查看服务是否启动成功.并查看各个目录中是否成功生成日志.pid等文件.
9.使用命令行进入mongo中.登陆命令在 bin/目录中.
/home/mdb/bin/mongo mdb:2801
其实在开始的时候设置了环境变量.那么就可以直接使用命令进行登陆即可.
mongo mdb:28017
10.mongo在进行停止的时候可以使用kill直接结束进程号即可.不要使用kill -9进行mongo的结束.
11.首次登陆的时候会有很多相关的警告和提醒.需要进行配置.
12.修复这些警告:
1.创建一个修复用的脚本.放到/etc/init.d/目录下
[root@Master ~]# cat /etc/init.d/disable-transparent-hugepages
#!/bin/bash
### BEGIN INIT INFO
# Provides: disable-transparent-hugepages
# Required-Start: $local_fs
# Required-Stop:
# X-Start-Before: mongod mongodb-mms-automation-agent
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Disable Linux transparent huge pages
# Description: Disable Linux transparent huge pages, to improve
# database performance.
### END INIT INFO
case $1 in
start)
if [ -d /sys/kernel/mm/transparent_hugepage ]; then
thp_path=/sys/kernel/mm/transparent_hugepage
elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
thp_path=/sys/kernel/mm/redhat_transparent_hugepage
else
return 0
fi
echo 'never' > ${thp_path}/enabled
echo 'never' > ${thp_path}/defrag
re='^[0-1]+$'
if [[ $(cat ${thp_path}/khugepaged/defrag) =~ $re ]]
then
# RHEL 7
echo 0 > ${thp_path}/khugepaged/defrag
else
# RHEL 6
echo 'no' > ${thp_path}/khugepaged/defrag
fi
unset re
unset thp_path
;;
esac
13.禁用 Transparent Huge Pages (THP) 透明页.永久禁用.这里设置在命令行启动模式下启用.
给这个脚本赋予执行权限
cd /etc/init.d/
chmod 755 disable-transparent-hugepages
并且执行
[root@Master init.d]# pwd
/etc/init.d
[root@Master init.d]# chkconfig disable-transparent-hugepages on
[root@Master init.d]#./disable-transparent-hugepages start
14.启动服务.
mongod -f /home/mdb/conf/mongodb.conf
查看进程
并且登陆查看之前的警告状态.
mongo mdb1:28017 -uadmin -p
123456
如果端口不对看看配置文件.
14.修改缓存大小.一般不超过物理内存的80%
wiredTiger:
engineConfig:
cacheSizeGB: 1 #将用于所有数据缓存的最大小
15.一般创建mongo用户进行mongo服务的启动和程序的执行.
否则也会在进行mongo登陆的时候出现警告信息.
17.使用show dbs;就可以查看当前有哪些数据库.
18.配置文件如下:
systemLog: destination: file #Mongodb 日志输出的目的地,指定一个 file 或者 syslog,如果指定 file,必须指定 systemlog.path logAppend: true #当实例重启时,不创建新的日志文件,在老的日志文件末尾继续添加 path: /home/mdb/logs/mongod.log #日志路径 storage: dbPath: /home/mdb/data #数据存储目录 journal: #回滚日志 enabled: true directoryPerDB: true #默认 false,不适用 inmemory engine # engine: #存储引擎3.2默认wiredTiger # mmapv1: # preallocDataFiles: <boolean> #启用或禁用数据文件的预分配。默认情况下,MongoDB不会预分配数据文件。 # nsSize: <int> #默认16M命名空间文件的默认大小,即文件的结尾.ns。每个集合和索引都将计算为一个命名空间。 # quota: # enforced: <boolean> #默认 false,启用或禁用每个数据库可以拥有的数字数据文件的最大限制 # maxFilesPerDB: <int> #默认8,每个数据库的数据文件数量的限制和enforced参数结合使用。。 # smallFiles: <boolean> #默认 false 选项减少数据文件的初始大小,使用大量的库存较小的文件 wiredTiger: engineConfig: cacheSizeGB: 2 #将用于所有数据缓存的最大小 # journalCompressor: <string> #默认snappy,WiredTiger日志数据的压缩类型。 # directoryForIndexes: true #默认false 索引集合storage.dbPath存储在数据单独子目录 # collectionConfig: # blockCompressor: <string> #默认snappy,用于压缩收集数据的默认压缩类型 # indexConfig: # prefixCompression: <boolean> #默认 true启用或禁用索引数据的前缀压缩 # inMemory: # engineConfig: # inMemorySizeGB: <number> #默认值:物理RAM的50%少于1 GB processManagement: #使用处理系统守护进程的控制处理 fork: true # fork and run in background 后台运行 pidFilePath: /home/mdb/pid/mongod.pid # location of pidfile 创建 pid 文件 net: port: 28017 #监听端口 bindIp: 10.0.5.199 #绑定 ip maxIncomingConnections: 5000 #mongos 或者 mongod 最大连接数,如果高于系统配置的最大连接阈值则不起作用 #http: #enabled: true #开启 http 接口确保生产环境中的REST API和JSON API都被禁用以防止潜在的数据暴露和攻击者的漏洞。 #security: #认证 # keyFile: /data/mongod/conf/keyfile #秘钥文件的路径,用于 mongodb 分片集群或者副本集进行身份验证的共享秘钥 # clusterAuthMode: keyFile #集群的认证方式 keyFile 秘钥文件进行身份认证,推荐 x509证书认证 # authorization: enabled #启用或者禁用基于角色的访问控制来管理每个用户对数据库资源和操作的访问 enabled 或者 disables # javascriptEnabled: <boolean> #启用或者禁用服务端JavaScript 执行,禁用时不能使用JavaScript代码的服务端执行操作 # sasl: # hostName: <string> # serviceName: <string> # saslauthdSocketPath: <string> # enableEncryption: <boolean> #启用WiredTiger存储引擎的加密。您必须设置为true传递加密密钥和配置 # encryptionCipherMode: <string> #加密的模式适用于企业版 # encryptionKeyFile: <string> #通过KMIP 以外的进程管理密钥时的本地密钥文件的路径只有通过KMIP以外的进程管理密钥时才设置,需要saecurity.enableEncryption是true。 # kmip: # keyIdentifier: <string> # rotateMasterKey: <boolean> # serverName: <string> # port: <string> # clientCertificateFile: <string> # clientCertificatePassword: <string> # serverCAFile: <string> #replication: # oplogSizeMB: 1024 #复制操作日志的大小 # replSetName: eqxtest3 #副本集名称,同一个副本集的所有主机必须设置相同的名称 # secondaryIndexPrefetch: <string> #只用于 mmapv1存储引擎,默认二进制文件和相关操作索引加载到内存,none 不会加载,all 二次加载,_id_only出了已存在_id,不会加载其他索引 # enableMajorityReadConcern: <boolean> #默认 false #sharding: #3 clusterRole: shardsvr #分片集群角色,configsvr作为配置服务启动,shardsvr 分片实例启动 # archiveMovedChunks: <boolean> #块迁移期间,一个分片不保存文档从分片迁移,默认 false # autoSplit: <boolean> # 默认 true,启用或者禁用自动分片, # configDB: <string> #mongos 分片集群实例必须制定相同的配置服务副本集名字,configDB: <configReplSetName>/cfg1.example.net:27017, cfg2.example.net:27017 # chunkSize: <int> #默认64M [root@VM_5_199_centos conf]# cat configdb.conf systemLog: destination: file #Mongodb 日志输出的目的地,指定一个 file 或者 syslog,如果指定 file,必须指定 systemlog.path logAppend: true #当实例重启时,不创建新的日志文件,在老的日志文件末尾继续添加 path: /home/mdb/logs/configdb.log #日志路径 storage: dbPath: /home/data/configdb/data #数据存储目录 journal: #回滚日志 enabled: true directoryPerDB: true #默认 false,不适用 inmemory engine # engine: #存储引擎3.2默认wiredTiger # mmapv1: # preallocDataFiles: <boolean> #启用或禁用数据文件的预分配。默认情况下,MongoDB不会预分配数据文件。 # nsSize: <int> #默认16M命名空间文件的默认大小,即文件的结尾.ns。每个集合和索引都将计算为一个命名空间。 # quota: # enforced: <boolean> #默认 false,启用或禁用每个数据库可以拥有的数字数据文件的最大限制 # maxFilesPerDB: <int> #默认8,每个数据库的数据文件数量的限制和enforced参数结合使用。。 # smallFiles: <boolean> #默认 false 选项减少数据文件的初始大小,使用大量的库存较小的文件 wiredTiger: engineConfig: cacheSizeGB: 1 #将用于所有数据缓存的最大小 # journalCompressor: <string> #默认snappy,WiredTiger日志数据的压缩类型。 directoryForIndexes: true #默认false 索引集合storage.dbPath存储在数据单独子目录 # collectionConfig: # blockCompressor: <string> #默认snappy,用于压缩收集数据的默认压缩类型 # indexConfig: # prefixCompression: <boolean> #默认 true启用或禁用索引数据的前缀压缩 # inMemory: # engineConfig: # inMemorySizeGB: <number> #默认值:物理RAM的50%少于1 GB processManagement: #使用处理系统守护进程的控制处理 fork: true # fork and run in background 后台运行 pidFilePath: /home/mdb/pid/configdb.pid # location of pidfile 创建 pid 文件 net: port: 27000 #监听端口 bindIp: 10.0.5.199 #绑定 ip maxIncomingConnections: 5000 #mongos 或者 mongod 最大连接数,如果高于系统配置的最大连接阈值则不起作用 #http: #enabled: true #开启 http 接口确保生产环境中的REST API和JSON API都被禁用以防止潜在的数据暴露和攻击者的漏洞。 security: #认证 keyFile: /data/mongod/conf/keyfile #秘钥文件的路径,用于 mongodb 分片集群或者副本集进行身份验证的共享秘钥 clusterAuthMode: keyFile #集群的认证方式 keyFile 秘钥文件进行身份认证,推荐 x509证书认证 authorization: enabled #启用或者禁用基于角色的访问控制来管理每个用户对数据库资源和操作的访问 enabled 或者 disables # javascriptEnabled: <boolean> #启用或者禁用服务端JavaScript 执行,禁用时不能使用JavaScript代码的服务端执行操作 # sasl: # hostName: <string> # serviceName: <string> # saslauthdSocketPath: <string> # enableEncryption: <boolean> #启用WiredTiger存储引擎的加密。您必须设置为true传递加密密钥和配置 # encryptionCipherMode: <string> #加密的模式适用于企业版 # encryptionKeyFile: <string> #通过KMIP 以外的进程管理密钥时的本地密钥文件的路径只有通过KMIP以外的进程管理密钥时才设置,需要saecurity.enableEncryption是true。 # kmip: # keyIdentifier: <string> # rotateMasterKey: <boolean> # serverName: <string> # port: <string> # clientCertificateFile: <string> # clientCertificatePassword: <string> # serverCAFile: <string> replication: #oplogSizeMB: 1024 #复制操作日志的大小 replSetName: csreplset #副本集名称,同一个副本集的所有主机必须设置相同的名称 # secondaryIndexPrefetch: <string> #只用于 mmapv1存储引擎,默认二进制文件和相关操作索引加载到内存,none 不会加载,all 二次加载,_id_only出了已存在_id,不会加载其他索引 # enableMajorityReadConcern: <boolean> #默认 false sharding: clusterRole: configsvr #分片集群角色,configsvr作为配置服务启动,shardsvr 分片实例启动 # archiveMovedChunks: <boolean> #块迁移期间,一个分片不保存文档从分片迁移,默认 false # autoSplit: true # 默认 true,启用或者禁用自动分片, #configDB: <string> #mongos 分片集群实例必须制定相同的配置服务副本集名字,configDB: <configReplSetName>/cfg1.example.net:27017, cfg2.example.net:27017 # chunkSize: <int> #默认64M
浙公网安备 33010602011771号