Linux 下安装 MongoDB
- 下载
cd /usr/local/src
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.5.tgz
- 解压
tar zxvf mongodb-linux-x86_64-rhel70-4.2.5.tgz
- 移动目录
mv mongodb-linux-x86_64-rhel70-4.2.5 /usr/local/mongodb/
- 配置环境变量
# 创建环境变量文件
vim /etc/profile.d/mongodb.sh
# 或:用户级别控制:
# vim ~/.bashrc
# 写入如下内容
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
# 保存退出后生效
source /etc/profile.d/mongodb.sh
- 创建相关目录和文件
mkdir -p /usr/local/mongodb/log
mkdir -p /usr/local/mongodb/data
mkdir -p /usr/local/mongodb/conf
- 配置 MongoDB 配置文件
touch /usr/local/mongodb/conf/mongod.conf
## 写入如下内容
systemLog:
destination: file
logAppend: true
path: /usr/local/mongodb/log/mongod.log
# where and how to store data.
storage:
dbPath: /usr/local/mongodb/data
journal:
enabled: true
# how the process runs
processManagement:
fork: true
pidFilePath: /usr/local/mongodb/mongod.pid
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
## 保存退出
- 启动服务
# 进入 bin 目录
cd /usr/local/mongodb/bin
# 启动 mongodb 服务
./mongod --config ../conf/mongod.conf
- 启动客户端
./mongo
- 基本操作
# 查看当前实例下的数据库列表
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
# 切换当前数据库
> use test
# 像 user 集合中插入一条数据
> db.user.insert({"id": 1})
# 查看插入 到 user 集合中的数据
> db.user.find({"id": 1})
# 返回
{ "_id" : ObjectId("5e98b3909f9d9749154c6574"), "id" : 1 }
# 另:MongoDB 界面管理软件:https://robomongo.org/
- 设置用户名和密码
> use admin
# 设置用户名和密码
> db.createUser({ user: 'root', pwd: 'asdf', roles: [{ role: 'root', db: 'admin'}]})
> exit
# 重启数据库
cd /usr/local/mongodb/bin
./mongod --auth --config ../conf/mongod.conf
# 客户端验证方法 1:
./mongo -u "root" -p "asdf" --authenticationDatabase "admin"
# 验证方法 2:
> use admin
> db.auth("root", "asdf")
- 安装出现的问题
# 问题(以及 libssl.so.10):
# /bin/mongod: error while loading shared libraries: libcrypto.so.10
# 解决方案 1(已验证)
# 查找系统是否有该文件
find / -name libcrypto.so.10
# 如果有,复制到 /usr/local/lib 并软连接
cp /xx/xx/libcrypto.so.10 /usr/local/lib
ln /usr/local/lib/libcrypto.so.10 /usr/lib/libcrypto.so.10
# 解决方案 2(未验证)
# 查找文件的 1.0.0 版本,并软连接
find / -name libcrypto.so.1.0.0
编译安装 PHP7 的 Mongodb 扩展
- mongo 扩展已经废弃,mongodb 扩展支持 PHP7
- 下载源码包
cd /usr/local/src
wget http://pecl.php.net/get/mongodb-1.7.4.tgz
- 解压缩
tar zxvf mongodb-1.7.4.tgz
- 编译三部曲
# 进入源码目录
cd mongodb-1.7.4
# 通过 phpize 建立 PHP 的外挂模块,生成 configure
/usr/local/php/bin/phpize
# 配置
./configure --with-php-config=/usr/local/php/bin/php-config
# 配置安装 && 编译安装
make && make install
- 配置 php.ini
echo "[mongodb]" >> /usr/local/php/etc/php.ini
echo "extension = mongodb.so" >> /usr/local/php/etc/php.ini
# 重启 Nginx 和 PHP
systemctl restart nginx
/etc/init.d/php-fpm restart
# 查看是否安装成功
php -m