--------------------------------------------------------------------------------------------------------------------------------
1.下载与 CentOS 系统匹配的 mongodb-linux-x86_64-rhel70-3.4.2.tgz 文件:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.2.tgz
2. 解压缩 mongodb-linux-x86_64-rhel70-3.4.2.tgz 文件:
tar -zxvf mongodb-linux-x86_64-rhel70-3.4.2.tgz
解压完成后得到 mongodb-linux-x86_64-rhel70-3.4.2.tgz 文件夹及其所属的文件;
3.重命名 mongodb-linux-x86_64-rhel70-3.4.2.tgz 文件为 mongodb:
mv mongodb-linux-x86_64-rhel70-3.4.2.tgz mongodb
4.创建mongodb文件夹:进入mongodb文件,分别创建conf,logs,data文件
5,进入conf目录创建mongodb.conf文件 vim mongodb.conf
在 mongodb.conf 写入如下内容:
# 设置数据文件的存放目录
dbpath = /usr/cboy/mongodb/data
# 设置日志文件的存放目录及其日志文件名
logpath = /usr/cboy/mongodb/logs/mongodb.log
# 设置端口号(默认的端口号是 27017)
port = 27017
# 设置为以守护进程的方式运行,即在后台运行
fork = true
# nohttpinterface = true
nohttpinterface = true
参数解释:
--dbpath 数据库路径(数据文件)
--logpath 日志文件路径
--master 指定为主机器
--slave 指定为从机器
--source 指定主机器的IP地址
--pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
--logappend 日志文件末尾添加,即使用追加的方式写日志
--journal 启用日志
--port 启用端口号
--fork 在后台运行
--only 指定只复制哪一个数据库
--slavedelay 指从复制检测的时间间隔
--auth 是否需要验证权限登录(用户名和密码)
--syncdelay 数据写入硬盘的时间(秒),0是不等待,直接写入
--notablescan 不允许表扫描
--maxConns 最大的并发连接数,默认2000
--pidfilepath 指定进程文件,不指定则不产生进程文件
--bind_ip 绑定IP,绑定后只能绑定的IP访问服务
6.以自定义的 mongodb 配置文件方式启动:
./mongod -f /usr/cboy/mongodb/conf/mongodb.conf
7.查看 mongodb 进程:
ps aux |grep mongodb
8.检查端口是否已被启动:
netstat -lanp | grep 27017
杀死 mongodb 进程,即可关闭 mongodb 服务:
kill -15 PID
解决启动警告问题:
Server has startup warnings:
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten]
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten]
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten]
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten]
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
解决后两个警告:
1、 hugepage
消耗大内存,关闭方法:
echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo never >/sys/kernel/mm/transparent_hugepage/defrag
查看配置后的
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
已经是never
那么大内存是什么?没有swap,块表的负载减轻。但是很多配置都需要手动的配置,在mongodb中非常的不推荐。占用的内存过大。有一个非常值得注意的地方,在3.0以上cache的size是默认的一半的系统内存。一旦你尝试在一台电脑中运行两个shard的时候,内存分分钟会爆了
--------------------------------------------------------------------------------------------------------------------------------
php mongodb 扩展安装:
首先下载最新的php mongodb扩展源码,源码可以在http://pecl.php.net/package/mongodb下载到
wget http://pecl.php.net/package/mongodb/mongodb-1.2.5.tgz
tar zxvf mongodb-1.2.5.tgz
cd mongodb-1.2.5.tgz
进入文件夹后,首先运行phpize来准备编译扩展的环境,phpize这个程序的介绍在这里
/usr/cboy/php7/bin/phpize
运行后,./configure 脚本就会生成了,这个时候我们运行./configure脚本来进行配置
./configure --with-php-config=/usr/cboy/php7/bin/php-config
--with-php-config这个参数是告诉配置脚本php-config这个程序的路径
这时用make来编译扩展
make && make install
正确编译执行结果如下:
Build complete.
Don't forget to run 'make test'.
完成后,请编辑你php.ini文件增加一行
extension=mongodb.so
一般默认的编译php的ini文件在
/usr/cboy/php7/etc/php.ini
重启你的web服务器或者php-fpm,打印phpinfo,如果看到mongodb项表,那么mongodb的扩展安装成功了
注意:/usr/cboy/是我的PHP安装路径,
mongo扩展库已经被废弃,而且不支持PHP7,mongodb扩展库支持PHP7
--------------------------------------------------------------------------------------------------------------------------------
1.下载与 CentOS 系统匹配的 mongodb-linux-x86_64-rhel70-3.4.2.tgz 文件:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.2.tgz
2. 解压缩 mongodb-linux-x86_64-rhel70-3.4.2.tgz 文件:
tar -zxvf mongodb-linux-x86_64-rhel70-3.4.2.tgz
解压完成后得到 mongodb-linux-x86_64-rhel70-3.4.2.tgz 文件夹及其所属的文件;
3.重命名 mongodb-linux-x86_64-rhel70-3.4.2.tgz 文件为 mongodb:
mv mongodb-linux-x86_64-rhel70-3.4.2.tgz mongodb
4.创建mongodb文件夹:进入mongodb文件,分别创建conf,logs,data文件
5,进入conf目录创建mongodb.conf文件 vim mongodb.conf
在 mongodb.conf 写入如下内容:
# 设置数据文件的存放目录
dbpath = /usr/cboy/mongodb/data
# 设置日志文件的存放目录及其日志文件名
logpath = /usr/cboy/mongodb/logs/mongodb.log
# 设置端口号(默认的端口号是 27017)
port = 27017
# 设置为以守护进程的方式运行,即在后台运行
fork = true
# nohttpinterface = true
nohttpinterface = true
参数解释:
--dbpath 数据库路径(数据文件)
--logpath 日志文件路径
--master 指定为主机器
--slave 指定为从机器
--source 指定主机器的IP地址
--pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
--logappend 日志文件末尾添加,即使用追加的方式写日志
--journal 启用日志
--port 启用端口号
--fork 在后台运行
--only 指定只复制哪一个数据库
--slavedelay 指从复制检测的时间间隔
--auth 是否需要验证权限登录(用户名和密码)
--syncdelay 数据写入硬盘的时间(秒),0是不等待,直接写入
--notablescan 不允许表扫描
--maxConns 最大的并发连接数,默认2000
--pidfilepath 指定进程文件,不指定则不产生进程文件
--bind_ip 绑定IP,绑定后只能绑定的IP访问服务
6.以自定义的 mongodb 配置文件方式启动:
./mongod -f /usr/cboy/mongodb/conf/mongodb.conf
7.查看 mongodb 进程:
ps aux |grep mongodb
8.检查端口是否已被启动:
netstat -lanp | grep 27017
杀死 mongodb 进程,即可关闭 mongodb 服务:
kill -15 PID
解决启动警告问题:
Server has startup warnings:
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten]
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten]
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten]
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten]
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-03-07T05:32:03.285+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
解决后两个警告:
1、 hugepage
消耗大内存,关闭方法:
echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo never >/sys/kernel/mm/transparent_hugepage/defrag
查看配置后的
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
已经是never
那么大内存是什么?没有swap,块表的负载减轻。但是很多配置都需要手动的配置,在mongodb中非常的不推荐。占用的内存过大。有一个非常值得注意的地方,在3.0以上cache的size是默认的一半的系统内存。一旦你尝试在一台电脑中运行两个shard的时候,内存分分钟会爆了
--------------------------------------------------------------------------------------------------------------------------------
php mongodb 扩展安装:
首先下载最新的php mongodb扩展源码,源码可以在http://pecl.php.net/package/mongodb下载到
wget http://pecl.php.net/package/mongodb/mongodb-1.2.5.tgz
tar zxvf mongodb-1.2.5.tgz
cd mongodb-1.2.5.tgz
进入文件夹后,首先运行phpize来准备编译扩展的环境,phpize这个程序的介绍在这里
/usr/cboy/php7/bin/phpize
运行后,./configure 脚本就会生成了,这个时候我们运行./configure脚本来进行配置
./configure --with-php-config=/usr/cboy/php7/bin/php-config
--with-php-config这个参数是告诉配置脚本php-config这个程序的路径
这时用make来编译扩展
make && make install
正确编译执行结果如下:
Build complete.
Don't forget to run 'make test'.
完成后,请编辑你php.ini文件增加一行
extension=mongodb.so
一般默认的编译php的ini文件在
/usr/cboy/php7/etc/php.ini
重启你的web服务器或者php-fpm,打印phpinfo,如果看到mongodb项表,那么mongodb的扩展安装成功了
注意:/usr/cboy/是我的PHP安装路径,
mongo扩展库已经被废弃,而且不支持PHP7,mongodb扩展库支持PHP7
--------------------------------------------------------------------------------------------------------------------------------