1. 程式人生 > 其它 >解決request獲取引數的中文亂碼問題

解決request獲取引數的中文亂碼問題

安裝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/

因為有悔,所以披星戴月;因為有夢,所以奮不顧身! 個人部落格首發:easydb.net 微信公眾號:easydb 關注我,不走丟!