一。 Redis的安裝
1。 準備
(1)。 宿主機:centos 8。0
(2)。 Redis原始碼:【壓縮包: redis-5。0。0。tar。gz】 需要自行編譯。 (PS:這個壓縮包可以直接Centos系統中線上下載 或者去Redis官網先下載,然後copy到Centos系統中)
下載地址:
官網:https://redis。io/
中文版:http://www。redis。cn/
注:Redis的安裝需要下載原始碼,自行準備環境,進行編譯安裝。
(3)。 gcc環境:redis是C語言開發的,安裝redis需要先將官網下載的原始碼進行編譯,編譯依賴 gcc 環境。
2。 安裝步驟
(1). 安裝gcc環境
透過指令【yum install gcc-c++】安裝gcc環境,安裝過程中需要兩次輸入y,分別是確認下載和確認安裝。
兩次確認:
最終安裝成功:
(2). 安裝Redis
A。 去Redis官網下載壓縮包,然後Copy到Centos宿主機中,下載地址為:http://download。redis。io/releases/ ,這裡我們以 【5。0。0】版本為例進行演示。
PS: 這裡我們直接在Linux系統中線上下載壓縮包,執行指令:【
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
】
B。 解壓到當前目錄,執行下面指令 ,解壓後的檔案如下:
【tar -zxvf redis-5。0。0。tar。gz】
C。 切換到redis目錄,執行make指令進行編譯 。
【cd redis-5。0。0/】
【make】
(ps:make指令可能需要安裝,根據提示,輸入y確認安裝即可)
D. 安裝redis到指令目錄
【cd redis-5。0。0/】
【make PREFIX=/usr/local/redis install 】
PS:make install安裝完成後,會在/usr/local/redis/bin目錄下生成下面幾個可執行檔案,它們的作用分別是:
redis-server:Redis伺服器端啟動程式
redis-cli:Redis客戶端操作工具。也可以用telnet根據其純文字協議來操作
redis-benchmark:Redis效能測試工具
redis-check-aof:資料修復工具
redis-check-dump:檢查匯出工具
(3). 配置Redis
進入redis原先的解壓目錄,把裡面的配置檔案 【redis。conf】 複製到 /usr/local/redis/bin 目錄下。
【cd redis-5。0。0/】
【cp redis。conf /usr/local/redis/bin】
(4). 啟動Redis
A。 進入到 /usr/local/redis/bin 安裝目錄,
【cd /usr/local/redis/bin】
B。 修改redis。conf,把daemonize no 改為daemonize yes,改為守護程序,即後臺程式啟動,否則關閉視窗redis服務就關閉了
(可選)
C。 執行指令
【./redis-server redis.conf】
進行啟動,如下圖表示啟動成功。
PS: ./表示當前目錄
(5)。 複製一個視窗,啟動連結客戶端 【。/redis-cli】,可以進行redis操作。
(6)。 關閉redis服務【。/redis-cli shutdown】, 如果有密碼,需要【。/redis-cli
-a 123456
shutdown】
進行連結,連線失敗;重新啟動redis服務【
./redis-server redis.conf
】,進行連結,連結成功。
PS:也可以直接透過【ps -ef|grep redids】獲取redis服務的程序號,然後 【kill 程序號】的方式強制關掉redis服務。
更多C++後臺開發技術點知識內容包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒體,音影片開發,Linux核心,TCP/IP,協程,DPDK多個高階知識點。
C/C++後臺開發架構師免費學習地址:C/C++Linux鏈嶅姟鍣ㄥ紑鍙�/鍚庡彴鏋舵瀯甯堛€愰浂澹版暀鑲層€�-瀛︿範瑙嗛鏁欑▼-鑵捐璇懼爞
【文章福利】另外還整理一些C++後臺開發架構師 相關學習資料,面試題,教學影片,以及學習路線圖,免費分享有需要的可以點選 「連結」 免費領取
如下圖:
3。 測試
如何在外部連結linux上的redis?
(1)。 將 bind 127。0。0。1 註釋掉。
(2)。 關閉保護模式,即將 protected-mode 改為 no。
PS:以上兩個指令執行完成後,要重啟一下redis服務。
(3)。首先需要在centos宿主機上關閉防火牆,從而外部可以訪問redis的6379埠。
#新增6379埠永久開放 sudo firewall-cmd ——add-port=6379/tcp ——permanent #重啟防火牆 firewall-cmd ——reload
(4)。 使用客戶端工具進行連線,連線成功。
4. 其它配置和指令
(1). 設定密碼
預設連結redis是沒有密碼的,我們透過修改
redis.conf
檔案中 requirepass 節點,來設定密碼,如下圖:
預設:
修改密碼為123456:
重新連結:
在本地電腦上透過客戶端連線:
【 redis-cli -h 192.168.137.201 -p 6379 -a 123456】
(2). 改為守護程序
修改redis。conf,把daemonize no 改為daemonize yes,改為守護程序,即後臺程式啟動,否則關閉視窗redis服務就關閉了
參考文件:https://blog。csdn。net/lc1010078424/article/details/78295482 (新增服務)
https://blog。csdn。net/weixin_40605573/article/details/89324038
二。 MySQL的安裝
1。 準備
(1)。 宿主機:centos8。0
(2)。 MySQL安裝包:mysql-5。7。31-1。el7。x86_64。rpm-bundle。tar (這裡安裝的是5。7版本)
PS:這裡使用的安裝包是針對centos系統特製的RPM包,透過RPM相關指令進行安裝,當然也可以透過其他型別的安裝包進行編譯安裝。
下載地址:https://dev。mysql。com/downloads/mysql/ ,這裡演示的是下載整個壓縮包,解壓後有很多元件的rmp包,當然我們也可以根據需要直接下載對應的元件進行安裝,比如我只下載Server的rpm包。
2。 安裝步驟
前提:刪除一下系統自帶的mysql
(1). 把安裝包copy到centos的宿主機中
(2). 在當前目錄下進行解壓,指令如下
【tar -xvf mysql-5。7。31-1。el7。x86_64。rpm-bundle。tar】解壓出來一堆包,我們根據需要安裝即可。
(3). 安裝client端 和 server 端
經驗:server需要依賴client端,所以server端最後安裝,client端還需要依賴common和libs,而且client還需要libncurses和libtinfo相關,所以我們在
rmp包的根目錄下
執行指令,嚴格按照下面的順序進行。
【rpm -ivh mysql-community-common-5。7。31-1。el7。x86_64。rpm】
【rpm -ivh mysql-community-libs-5。7。31-1。el7。x86_64。rpm】
【yum install libncurses* -y】
【yum install libtinfo* -y】
【rpm -ivh mysql-community-client-5。7。31-1。el7。x86_64。rpm】
【rpm -ivh mysql-community-server-5。7。31-1。el7。x86_64。rpm】
截止此處全部安裝完成。
(4). 啟動服務並檢視狀態
A。 啟動服務: 【systemctl start mysqld】
B。 檢視狀態:【systemctl status mysqld】
(5). 必備的配置
A. 修改密碼策略,否則無法隨心所以的修改密碼
找到mysql的配置檔案,
位於 /etc/my.conf ,
在這個配置檔案裡,還能看見其它幾個配置的路徑,如下圖,然後新增下面程式碼,修改完後,重啟一下mysql服務【systemctl restart mysqld】
注:以下兩行程式碼任意一行都可以,可以直接關閉密碼策略即可。
#新增validate_password_policy配置 選擇0(LOW)1(MEDIUM)2(STRONG)其中一種 validate_password_policy=0 #關閉密碼策略 validate_password = off
B. 檢視隨機密碼
預設root賬號會生成一個隨機密碼,透過指令【grep “password” /var/log/mysqld。log 】檢視,如下圖,密碼為: wIsu。rk_d74c
C. 修改密碼(這裡改為123456)
使用內建客戶端進行登入,【mysql -uroot -p】,然後輸入上面密碼:wIsu。rk_d74c ,如下圖說明登入成功。 或者直接輸入指令:【mysql -uroot -pwIsu。rk_d74c】
將root賬號的密碼改為:123456,指令為【
set password=password('123456');
】
注意在mysql中的指令結尾必須有分號!!
或者執行指令:【
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
】進行密碼修改
輸入指令【exit;】,退出
重新輸入指令【mysql -uroot -p123456】,如下圖:登入成功
D. 設定允許遠端訪問
①。 執行下面指令,執行所有ip用root賬號,密碼為123456進行訪問mysql。
grant all privileges on *。* to ‘root’@‘%’ identified by ‘123456’ with grant option;flush privileges;
注:上述指令的本質是在User表中增加了一條新的記錄,Host設定為%,代表執行所有客戶端訪問,實際上可以直接去User表中把原先內建的root使用者的Host欄位由Localhost改為%即可。
②。 檢視防火牆狀態,開發3306埠,或者直接關閉防火牆。
#檢視防火牆狀態service firewalld status #方案1,開放3306埠,並重啟sudo firewall-cmd ——add-port=3306/tcp ——permanent#重啟防火牆firewall-cmd ——reload#方案2:直接關閉防火牆service firewalld stop
(6). 測試
使用客戶端遠端連線,如下圖,連線成功。
(7). 指令總結
【systemctl status mysqld】 檢視mysql狀態
【systemctl stop mysqld 】 關閉mysql服務
【systemctl start mysqld】 開啟mysql服務
【systemctl restart mysqld】 重啟服務
3.其它配置指令說明
(1). 授權遠端訪問詳解
方法1:授權法
—— 允許特定ip訪問grant all privileges on *。* to ‘root’@‘192。168。137。202’identified by ‘123’ with grant option;——允許所有ip訪問grant all privileges on *。* to ‘root’@‘%’ identified by ‘123’ with grant option;——執行完上述後,都要重新整理生效flush privileges;
說明:以上指令都是對root賬號授權遠端訪問,登入密碼為:123,特別注意這個密碼可以和 root本來server端不一樣,比如:本來server端root密碼為123456,這裡遠端授權設定的是123,那麼遠端客戶端登入就只能使用123密碼,使用123456密碼無法連線;透過set password把root的服務密碼改為12345678,不影響遠端授權登入,遠端客戶端仍然可以透過123進行訪問。
實質:上述操作本質上是在mysql中自帶的一個mysql庫中user表中插入了一條記錄,也就是在User表中對應了多個root賬戶,實際上不建議這樣做,直接把原先的root對應Host改為%即可。如下圖:
方法2:直接操作mysql下的user表
——可以更新欄位——特定ipupdate user set host = ‘192。168。1。49’ where user = ‘root’; ——所有ipupdate user set host = ‘%’ where user = ‘root’; ——也可以直接插入一條新紀錄——重新整理生效flush privileges;
說明:上述更新欄位的那種方式遠端登入使用的密碼為root自身server的密碼,也可以插入一條記錄,可以使用一個新的密碼,與root原來server端密碼不同。
(2). 配置字元編碼
注意:安裝完mysql後,一定要修改編碼,從mysql5.7開始,將編碼都改為utf8mb4。
連線上mysql,輸入指令【
show variables like '%character%';
】 ,檢視原來的各種編碼,如下圖,這裡我們把
character_set_server
也改成utf8,否則容易亂碼。
修改 /etc/my。cnf, 增加下面程式碼,然後重啟mysql服務 【systemctl restart mysqld】,重新檢視編碼,設定成功。
[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4[mysqld]# 設定client連線mysql時的字符集,防止亂碼init_connect=‘SET NAMES utf8mb4’init_connect=‘SET collation_connection = utf8mb4_general_ci’# 資料庫預設字符集character-set-server=utf8mb4#資料庫字符集對應一些排序等規則,注意要和character-set-server對應collation-server=utf8mb4_general_ci
檢視資料庫編碼,如下圖,修改成功。【show variables like ‘%character%’;】
(3). 忘記root密碼怎麼辦?
詳見:https://www。cnblogs。com/yaopengfei/p/13798785。html
三。 Nginx的安裝
1。準備
(1)。 宿主機:centos 8。0
(2)。 Nginx原始碼:需要去官網下載原始碼copy到centos系統中,自行編譯安裝。這裡使用【nginx 1。19。3】版本。
下載地址:http://www。nginx。org/
(3)。 編譯Nginx所需要的的環境:
A。 gcc環境:因為是C語言開發的。
B。 pcre: 是一個 Perl 庫,包括 perl 相容的正則表示式庫。nginx 的 http 模組使用 pcre 來解析正則表示式,所以需要在 linux 上安裝 pcre 庫。
注:pcre-devel 是使用 pcre 開發的一個二次開發庫,nginx 也需要此庫。
C。 zlib:zlib庫提供了很多種壓縮和解壓縮的方式,nginx 使用 zlib 對 http 包的內容進行 gzip,所以需要在 linux 上安裝 zlib 庫。
D。 OpenSSL: 是一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及 SSL 協議,並提供豐富的應用程式供測試或其它目的使用。nginx 不僅支援 http 協議,還支援 https(即在 ssl 協議上傳輸 http),所以需要在 linux安裝 openssl 庫。
2。 安裝步驟
(1)。 安裝編譯所需的環境
A。 【yum install -y gcc-c++】
圖如上面redis安裝一樣。
B。【yum install -y pcre pcre-devel】
C。 【yum install -y zlib zlib-devel】
D。 【yum install -y openssl openssl-devel】
(2)。 將下載好的Nginx壓縮包上傳到Centos的工作目錄下,並進行解壓縮 【tar -zxvf nginx-1。19。3。tar。gz】,解壓後如下圖:
(3)。 進入nginx-1。19。3目錄 使用 configure 命令建立1個 MakeFile 檔案。
【cd nginx-1。19。3/】,然後執行下面指令,直接copy進去,敲擊回車,執行即可
。/configure \——prefix=/usr/local/nginx \——pid-path=/var/run/nginx/nginx。pid \——lock-path=/var/lock/nginx。lock \——error-log-path=/var/log/nginx/error。log \——http-log-path=/var/log/nginx/access。log \——with-http_gzip_static_module \——http-client-body-temp-path=/var/temp/nginx/client \——http-proxy-temp-path=/var/temp/nginx/proxy \——http-fastcgi-temp-path=/var/temp/nginx/fastcgi \——http-uwsgi-temp-path=/var/temp/nginx/uwsgi \——http-scgi-temp-path=/var/temp/nginx/scgi
執行完成後,nginx目錄下多了一個MakeFile檔案
PS:程式碼解釋
—— 知識點小貼士 ——Makefile是一種配置檔案, Makefile 一個工程中的原始檔不計數,其按型別、功能、模組分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些檔案需要先編譯,哪些檔案需要後編譯,哪些檔案需要重新編譯,甚至於進行更復雜的功能操作,因為 makefile就像一個Shell指令碼一樣,其中也可以執行作業系統的命令。—— 知識點小貼士 ——-。/configure \——prefix=/usr \ 指向安裝目錄——sbin-path=/usr/sbin/nginx \ 指向(執行)程式檔案(nginx)——conf-path=/etc/nginx/nginx。conf \ 指向配置檔案——error-log-path=/var/log/nginx/error。log \ 指向log——http-log-path=/var/log/nginx/access。log \ 指向http-log——pid-path=/var/run/nginx/nginx。pid \ 指向pid——lock-path=/var/lock/nginx。lock \ (安裝檔案鎖定,防止安裝檔案被別人利用,或自己誤操作。)——user=nginx \——group=nginx \——with-http_ssl_module \ 啟用ngx_http_ssl_module支援(使支援https請求,需已安裝openssl)——with-http_flv_module \ 啟用ngx_http_flv_module支援(提供尋求記憶體使用基於時間的偏移量檔案)——with-http_stub_status_module \ 啟用ngx_http_stub_status_module支援(獲取nginx自上次啟動以來的工作狀態)——with-http_gzip_static_module \ 啟用ngx_http_gzip_static_module支援(線上實時壓縮輸出資料流)——http-client-body-temp-path=/var/tmp/nginx/client/ \ 設定http客戶端請求臨時檔案路徑——http-proxy-temp-path=/var/tmp/nginx/proxy/ \ 設定http代理臨時檔案路徑——http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ 設定http fastcgi臨時檔案路徑——http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ 設定http uwsgi臨時檔案路徑——http-scgi-temp-path=/var/tmp/nginx/scgi \ 設定http scgi臨時檔案路徑——with-pcre 啟用pcre庫
(4)。 在nginx-1。19。3目錄下,執行 【make】指令,進行編譯。
(5)。 安裝Nginx(指定安裝路徑)
在nginx-1。19。3目錄下執行下面的安裝指令
make
PREFIX=/usr/local/nginx
install
如下圖:
(6)。 啟動前準備
A。 啟動 nginx 之前,上邊MakeFile溫江將臨時檔案目錄指定為/var/temp/nginx/client, 需要在/var 下建立此目錄
mkdir /var/temp/nginx/client -p
B。 進入到Nginx安裝目錄下的sbin命令目錄下
cd /usr/local/nginx/sbin
(7)。 啟動
。/nginx
如圖:
(8)。 關閉防火牆或者開放80埠
#新增80埠永久開放 sudo firewall-cmd ——add-port=80/tcp ——permanent #重啟防火牆 firewall-cmd ——reload
(9)。 其它指令
A。 檢視nginx程序 【ps aux|grep nginx】
B。 關閉Nginx
。/nginx -s stop #或 。/nginx -s quit
C。 重啟nginx
。/nginx -s reload
3。 測試
訪問預設的80埠,輸入:http://192。168。137。201
4。 常見錯誤處理
(1)。 啟動nginx的時候報錯,如下圖,缺少檔案了。
解決方案:到對應目錄下建立相應檔案即可。
原文連結:第六節:Linux之基於Centos系統安裝Redis、MySQL、Nginx - Yaopengfei - 部落格園
猜你喜歡
- 2023-01-31小白學UG程式設計,首先要過的第一關
- 2023-01-10靠“曬太陽”躺賺!坑了無數農民的無良騙局,早該被拆穿了
- 2021-06-22《黃河在咆哮》版塊劇照出爐!天地英雄氣,千秋尚凜然……
- 2021-05-12欣欣子真的是可愛第一名 太期待初禮了!!
- 2021-04-17零點場,我來了!!