如何在LNMP或者bt面板下安装mongodb

/ 0评 / 0

1、安装MongoDB

mongodb 官方有各种系统安装的教程

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

1.1、Debian 10下安装

我们就拿Debian 10来做例子吧!

1.2、导入包管理系统使用的公钥

sudo apt-get install gnupg

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

1.3、创建系统更新源

echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

1.4、update

sudo apt-get update

1.5、安装MongoDB

两种安装方法选其中一个

#安装最新版本
sudo apt-get install -y mongodb-org
#安装最新稳定版
sudo apt-get install -y mongodb-org=4.4.1 mongodb-org-server=4.4.1 mongodb-org-shell=4.4.1 mongodb-org-mongos=4.4.1 mongodb-org-tools=4.4.1

1.6、禁止mongodb更新

echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections

1.7、查看系统后台运行模式

ps --no-headers -o comm 1

#systemd-选择下面的systemd(systemctl)选项卡。 
#init-选择下面的System V Init(服务)选项卡。

1.8、设置开启启动及常用命令

systemd模式

sudo systemctl daemon-reload
#开机启动
sudo systemctl enable mongod
#常用命令
sudo systemctl start mongod
sudo systemctl stop mongod
sudo systemctl restart mongod
sudo systemctl status mongod

init模式

sudo service mongod start
sudo service mongod status
sudo service mongod stop
sudo service mongod restart

1.9、进入mongo命令行

mongo

1.10、卸载

sudo service mongod stop
sudo apt-get purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

2、MongoDB - mongod.conf重要配置

修改mongod.conf文件

vim /etc/mongod.conf
 storage:
  dbPath: /var/lib/mongodb #数据库存放路径
  journal:
    enabled: true
  wiredTiger:
    engineConfig:
        cacheSizeGB: 1 #限制使用多少内存,超过1亿的数据才需要设置

3、手册

https://docs.mongodb.com/manual/reference/configuration-options
https://docs.mongodb.com/manual/reference/parameters/

4、安装php扩展

1、lnmp下安装

ext 1.8 + lib 1.7 不支持php5.6

MongoDB 4.2支持ext 1.8 + lib 1.5+ 支持php5.6

具体支持列表:https://docs.mongodb.com/drivers/php#compatibility

https://docs.mongodb.com/php-library/master/tutorial/install-php-library/

#查看php默认版本,
php -v


wget https://pecl.php.net/get/mongodb-1.8.0.tgz
tar zxvf mongodb-1.8.0.tgz
cd mongodb-1.8.0/

#默认php 7.x版本
#./configure --with-php-config=/usr/local/php/bin/php-config
#默认php 5.6版本
#./configure --with-php-config=/usr/local/php版本号/bin/php-config
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

cd ../
#默认php 5.6版本
# vim /usr/local/php7.4/etc/php.ini
#默认php 7.x版本
#/usr/local/php/etc/php.ini
vim /usr/local/php7.4/etc/php.ini
#php.ini最后一行中加入
#extension = "mongodb.so"
#下面是直接命令加入
sed -i '$a extension = "mongodb.so"' /usr/local/php/etc/php.ini

#重启生效
/etc/init.d/php-fpm restart

#查看phpinfo()是不是有mongodb
http://127.0.0.1/p.php?act=phpinfo

2、宝塔面板下安装

bt面板修改

#查看php默认版本,
php -v

#减压
wget https://pecl.php.net/get/mongodb-1.8.0.tgz
tar zxvf mongodb-1.8.0.tgz
cd mongodb-1.8.0/

#编译php组建
/www/server/php/74/bin/phpize
./configure --with-php-config=/www/server/php/74/bin/php-config
make && make install

cd ../
sed -i '$a extension = "mongodb.so"' /www/server/php/74/etc/php.ini

#重启生效
/etc/init.d/php-fpm restart

#查看phpinfo()是不是有mongodb
http://127.0.0.1/p.php?act=phpinfo

5、php下书写mongodb

https://docs.mongodb.com/php-library/current/tutorial/crud

6、经常用的到的常用命令

#创建数据库
use news

#创建表或者在mongo下称呼为集合
db.createCollection("news")

7、备份和导入

7.1、备份

mongodump命令脚本语法如下:

mongodump -h host -d dbname -o directory
mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径
Eg: # mongodump -d ejcms -o /data/
参数说明:
如果想导出所有数据库,可以去掉-d
-h:MongDB所在服务器地址,如:127.0.0.1,也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库名称,如:db_test
-o:备份的数据存放位置,如:~\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个db_test目录,这个目录里面存放该数据库实例的备份数据。

执行以上命令后,客户端会连接到ip为 127.0.0.1 端口号为 27017 的MongoDB服务上,并备份所有数据到 bin/dump/ 目录中。

7.2 恢复

mongodb使用 mongorestore 命令来恢复备份的数据。

mongorestore命令脚本语法如下:

mongorestore -h host -d dbname --directoryperdb dbdirectory
Eg:  # sudo mongorestore --db ejcms ~/ejcms
参数说明:
-h:MongoDB所在服务器地址
-d:需要恢复的数据库名称,如:db_test,当然这个名称可以不同于备份的时候,比如new_db
--directoryperdb:备份数据文件所在位置,如:~\dump\db_test(这里之所以要加db_test子目录,从mongoretore的help中的--directoryperdb,可以读出“每一个db在一个单独的目录”。)

发表评论

邮箱地址不会被公开。 必填项已用*标注