解決request獲取引數的中文亂碼問題
阿新 • • 發佈:2020-12-25
安裝MongoDB社群版
1.下載編譯好的通用軟體包
MongoDB的下載中心:https://www.mongodb.com/try/download/community
2.安裝所需的依賴
sudo yum install -y libcurl openssl xz-libs
3.關閉大頁記憶體機制(THP)
3.1 為什麼要關閉?
透明大頁面(THP)是一種Linux記憶體管理系統,它通過使用較大的記憶體頁面來減少具有大量記憶體的計算機上的轉換後備緩衝區(TLB)查詢的開銷。
但是,啟用THP時,資料庫工作負載通常表現不佳,因為它們往往具有稀疏而不是連續的記憶體訪問模式。在Linux上執行MongoDB時,應禁用THP以獲得最佳效能。
參照官網使用谷歌翻譯的,原文地址:https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/
3.2 建立一個systemd
來管理
vim /etc/systemd/system/disable-transparent-huge-pages.service
[Unit] Description=Disable Transparent Huge Pages (THP) DefaultDependencies=no After=sysinit.target local-fs.target Before=mongod.service [Service] Type=oneshot ExecStart=/bin/sh -c 'echo never | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null' ExecStart=/bin/sh -c 'echo never | tee /sys/kernel/mm/transparent_hugepage/defrag > /dev/null' [Install] WantedBy=basic.target
3.3 啟動關閉(THP)的服務
載入systemd檔案
sudo systemctl daemon-reload
啟動服務
sudo systemctl start disable-transparent-huge-pages.service
加入開機啟動
sudo systemctl enable disable-transparent-huge-pages.service
3.4 檢查是否成功關閉(THP)
cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] # 禁用狀態 [always] madvise never # 啟用狀態
4.MongoDB安裝
4.1 建立mongo使用者
useradd -s /sbin/nologin mongo
4.2 建立mongodb所需目錄結構
mkdir -p /data/mongodb/{conf,log,data,bin}
4.3 解壓並移動到指定目錄
將安裝包解壓到指定目錄
tar xf mongodb-linux-x86_64-rhel70-3.6.21.tgz -C /data/mongodb
移動到bin目錄下
mv /data/mongodb/mongodb-linux-x86_64-rhel70-3.6.21/bin/* /data/mongodb/bin/
4.4 新增mongo使用者環境變數
echo 'export PATH=$PATH:/data/mongodb/bin/' >> /etc/profile
source /etc/profile
檢查一下看環境變數是否生效
mongo --version
MongoDB shell version v3.6.21
4.5 YAML格式配置檔案講解
--系統日誌有關
systemLog:
destination: file
path: "/data/mongodb/log/mongodb.log" --日誌位置
logAppend: true --日誌以追加模式記錄
--資料儲存有關
storage:
journal:
enabled: true
dbPath: "/data/mongodb/data" --資料路徑的位置
-- 程序控制
processManagement:
fork: true --後臺守護程序
pidFilePath: <string> --pid檔案的位置,一般不用配置,可以去掉這行,自動生成到data中
--網路配置有關
net:
bindIp: <ip> -- 監聽地址,如果不配置這行是監聽在0.0.0.0
port: <port> -- 埠號,預設不配置埠號,是27017
-- 安全驗證有關配置
security:
authorization: enabled --是否開啟使用者名稱密碼驗證
4.6 YAML配置檔案示例
cat > /data/mongodb/conf/mongo.conf <<EOF
systemLog:
destination: file
path: "/data/mongodb/log/mongodb.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: "/data/mongodb/data/"
processManagement:
fork: true
net:
port: 27017
bindIp: 0.0.0.0
EOF
4.7 設定目錄許可權
chown -R mongo. /data/mongodb
4.8 使用配置檔案啟動/關閉
使用配置檔案啟動
[root@mongodb ~]# mongod -f /data/mongodb/conf/mongo.conf
about to fork child process, waiting until server is ready for connections.
forked process: 40813
child process started successfully, parent exiting
[root@mongodb ~]# netstat -lnptu | grep 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 40813/mongod
登陸
[root@mongodb ~]# mongo
MongoDB shell version v3.6.21
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ce5902e2-c166-4b09-a9d5-19e6549fb5d4") }
MongoDB server version: 3.6.21
>
>
關閉
[root@mongodb ~]# mongod -f /data/mongodb/conf/mongo.conf --shutdown
killing process with pid: 40813
4.9 使用systemctl命令管理服務
cat > /etc/systemd/system/mongod.service <<EOF
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
User=mongo
Type=forking
ExecStart=/data/mongodb/bin/mongod --config /data/mongodb/conf/mongo.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/data/mongodb/bin/mongod --config /data/mongodb/conf/mongo.conf --shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
基於systemctl管理
systemctl daemon-reload
systemctl start mongod.service
systemctl stop mongod.service
5.MongoDB常用基本操作
5.1 mongodb 預設存在的庫
> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB
5.2 幫助命令
help
KEYWORDS.help()
KEYWORDS.[TAB]
db.help()
db.a.help()
rs.help()
sh.help()
5.3 常用操作
--檢視當前db版本
test> db.version()
--顯示當前資料庫
test> db
test
或
> db.getName()
test
--查詢所有資料庫
test> show dbs
– 切換資料庫
> use local
switched to db local
- 檢視所有的collection
show tables;
– 顯示當前資料庫狀態
test> use local
switched to db local
local> db.stats()
– 檢視當前資料庫的連線機器地址
> db.getMongo()
connection to 127.0.0.1
指定資料庫進行連線
預設連線本機test資料庫
6.其它安裝方法
更多安裝方法可以參考官網:https://docs.mongodb.com/manual/administration/install-on-linux/