哦哇資訊網

Linux之基於Centos系統安裝Redis、MySQL、Nginx

由 Hu先生Linux後臺開發 發表于 美食2023-02-03

一。 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

Linux之基於Centos系統安裝Redis、MySQL、Nginx

B。 解壓到當前目錄,執行下面指令 ,解壓後的檔案如下:

【tar -zxvf redis-5。0。0。tar。gz】

Linux之基於Centos系統安裝Redis、MySQL、Nginx

C。 切換到redis目錄,執行make指令進行編譯 。

【cd redis-5。0。0/】

【make】

(ps:make指令可能需要安裝,根據提示,輸入y確認安裝即可)

Linux之基於Centos系統安裝Redis、MySQL、Nginx

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:檢查匯出工具

Linux之基於Centos系統安裝Redis、MySQL、Nginx

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(3). 配置Redis

進入redis原先的解壓目錄,把裡面的配置檔案 【redis。conf】 複製到 /usr/local/redis/bin 目錄下。

【cd redis-5。0。0/】

【cp redis。conf /usr/local/redis/bin】

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(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: ./表示當前目錄

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(5)。 複製一個視窗,啟動連結客戶端 【。/redis-cli】,可以進行redis操作。

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(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++後臺開發架構師 相關學習資料,面試題,教學影片,以及學習路線圖,免費分享有需要的可以點選 「連結」 免費領取

Linux之基於Centos系統安裝Redis、MySQL、Nginx

如下圖:

Linux之基於Centos系統安裝Redis、MySQL、Nginx

3。 測試

如何在外部連結linux上的redis?

(1)。 將 bind 127。0。0。1 註釋掉。

(2)。 關閉保護模式,即將 protected-mode 改為 no。

Linux之基於Centos系統安裝Redis、MySQL、Nginx

PS:以上兩個指令執行完成後,要重啟一下redis服務。

(3)。首先需要在centos宿主機上關閉防火牆,從而外部可以訪問redis的6379埠。

#新增6379埠永久開放 sudo firewall-cmd ——add-port=6379/tcp ——permanent #重啟防火牆 firewall-cmd ——reload

(4)。 使用客戶端工具進行連線,連線成功。

Linux之基於Centos系統安裝Redis、MySQL、Nginx

Linux之基於Centos系統安裝Redis、MySQL、Nginx

4. 其它配置和指令

(1). 設定密碼

預設連結redis是沒有密碼的,我們透過修改

redis.conf

檔案中 requirepass 節點,來設定密碼,如下圖:

預設:

Linux之基於Centos系統安裝Redis、MySQL、Nginx

修改密碼為123456:

Linux之基於Centos系統安裝Redis、MySQL、Nginx

重新連結:

Linux之基於Centos系統安裝Redis、MySQL、Nginx

在本地電腦上透過客戶端連線:

【 redis-cli -h 192.168.137.201 -p 6379 -a 123456】

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(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包。

Linux之基於Centos系統安裝Redis、MySQL、Nginx

Linux之基於Centos系統安裝Redis、MySQL、Nginx

2。 安裝步驟

前提:刪除一下系統自帶的mysql

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(1). 把安裝包copy到centos的宿主機中

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(2). 在當前目錄下進行解壓,指令如下

【tar -xvf mysql-5。7。31-1。el7。x86_64。rpm-bundle。tar】解壓出來一堆包,我們根據需要安裝即可。

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(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】

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(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

Linux之基於Centos系統安裝Redis、MySQL、Nginx

 B. 檢視隨機密碼

預設root賬號會生成一個隨機密碼,透過指令【grep “password” /var/log/mysqld。log 】檢視,如下圖,密碼為: wIsu。rk_d74c

Linux之基於Centos系統安裝Redis、MySQL、Nginx

 C. 修改密碼(這裡改為123456)

使用內建客戶端進行登入,【mysql -uroot -p】,然後輸入上面密碼:wIsu。rk_d74c ,如下圖說明登入成功。 或者直接輸入指令:【mysql -uroot -pwIsu。rk_d74c】

Linux之基於Centos系統安裝Redis、MySQL、Nginx

將root賬號的密碼改為:123456,指令為【

set password=password('123456');

注意在mysql中的指令結尾必須有分號!!

或者執行指令:【

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

】進行密碼修改

Linux之基於Centos系統安裝Redis、MySQL、Nginx

輸入指令【exit;】,退出

Linux之基於Centos系統安裝Redis、MySQL、Nginx

重新輸入指令【mysql -uroot -p123456】,如下圖:登入成功

Linux之基於Centos系統安裝Redis、MySQL、Nginx

 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改為%即可。

Linux之基於Centos系統安裝Redis、MySQL、Nginx

②。 檢視防火牆狀態,開發3306埠,或者直接關閉防火牆。

#檢視防火牆狀態service firewalld status #方案1,開放3306埠,並重啟sudo firewall-cmd ——add-port=3306/tcp ——permanent#重啟防火牆firewall-cmd ——reload#方案2:直接關閉防火牆service firewalld stop

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(6). 測試

使用客戶端遠端連線,如下圖,連線成功。

Linux之基於Centos系統安裝Redis、MySQL、Nginx

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(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改為%即可。如下圖:

Linux之基於Centos系統安裝Redis、MySQL、Nginx

方法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,否則容易亂碼。

Linux之基於Centos系統安裝Redis、MySQL、Nginx

修改 /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

Linux之基於Centos系統安裝Redis、MySQL、Nginx

檢視資料庫編碼,如下圖,修改成功。【show variables like ‘%character%’;】

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(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/

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(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】

Linux之基於Centos系統安裝Redis、MySQL、Nginx

C。 【yum install -y zlib zlib-devel】

Linux之基於Centos系統安裝Redis、MySQL、Nginx

D。 【yum install -y openssl openssl-devel】

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(2)。 將下載好的Nginx壓縮包上傳到Centos的工作目錄下,並進行解壓縮 【tar -zxvf nginx-1。19。3。tar。gz】,解壓後如下圖:

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(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檔案

Linux之基於Centos系統安裝Redis、MySQL、Nginx

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】指令,進行編譯。

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(5)。 安裝Nginx(指定安裝路徑)

在nginx-1。19。3目錄下執行下面的安裝指令

make

PREFIX=/usr/local/nginx

install

如下圖:

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(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

如圖:

Linux之基於Centos系統安裝Redis、MySQL、Nginx

(8)。 關閉防火牆或者開放80埠

#新增80埠永久開放 sudo firewall-cmd ——add-port=80/tcp ——permanent #重啟防火牆 firewall-cmd ——reload

(9)。 其它指令

A。 檢視nginx程序 【ps aux|grep nginx】

Linux之基於Centos系統安裝Redis、MySQL、Nginx

B。 關閉Nginx

。/nginx -s stop #或 。/nginx -s quit

C。 重啟nginx

。/nginx -s reload

3。 測試

訪問預設的80埠,輸入:http://192。168。137。201

Linux之基於Centos系統安裝Redis、MySQL、Nginx

4。 常見錯誤處理

(1)。 啟動nginx的時候報錯,如下圖,缺少檔案了。

Linux之基於Centos系統安裝Redis、MySQL、Nginx

解決方案:到對應目錄下建立相應檔案即可。

Linux之基於Centos系統安裝Redis、MySQL、Nginx

原文連結:第六節:Linux之基於Centos系統安裝Redis、MySQL、Nginx - Yaopengfei - 部落格園

TAG: nginxRedishttpmysql安裝