記錄CentOS 7.4 上安裝MySQL&MariaDB&Redis&Mongodb

来源:https://www.cnblogs.com/gdsblog/archive/2019/02/09/10357235.html
-Advertisement-
Play Games

記錄CentOS 7.4 上安裝MySQL&MariaDB&Redis&Mongodb ...


記錄CentOS 7.4 上安裝MySQL&MariaDB&Redis&Mongodb

前段時間我個人Google伺服器意外不能用,並且我犯了一件很低級的錯誤,直接在gcp講伺服器實例給釋放掉,導致我的數據全部丟失,現在新搞一個伺服器,順便記錄一下CentOS 7.4 MySQL&MariaDB&Redis&Mongodb 的安裝

1祝大家:諸事順利,2019 發大財!

本人將一如既往,更新我的博客,努力為博客園貢獻文章!

Mysql 安裝

隨著CentOS 7 MySQL的發佈,世界上最流行的開源關係資料庫管理系統在CentOS的倉庫中不再可用,MariaDB已經成為預設的資料庫系統。 MariaDB是一個向後相容的二進位嵌入式MySQL替代品

由於mysql在Linux的預設存儲庫中不可用,這裡我們採用mysql yum 存儲庫安裝mysql軟體包

下載並添加存儲庫

sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

安裝MySQL 8.0包(這裡我們直接安裝mysql 8.0)

與其他使用yum的軟體包一樣安裝MySQL,在安裝過程中,yum可能會提示您導入MySQL GPG密鑰。 鍵入y並按Enter鍵

yum install mysql-community-server

啟動MySQL

安裝完成後,啟用並啟動MySQL服務類型:

sudo systemctl enable mysqld

sudo systemctl start mysqld

我們可以通過鍵入以下命令來檢查MySQL服務狀態

sudo systemctl status mysqld

MySQL安全

當第一次啟動MySQL伺服器時,為MySQL根用戶生成一個臨時密碼。 您可以通過運行以下命令找到密碼:

sudo grep 'temporary password' /var/log/mysqld.log

輸出應該看起來像這樣:

2018-05-26T23:50:09.270656Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: HgPW+/Phb2Ql

記下密碼 HgPW+/Phb2Ql,因為下一個命令會要求您輸入臨時的root密碼。

運行mysql_secure_installation命令來提高MySQL安裝的安全性:

sudo mysql_secure_installation

客戶端連接

  1. 進入mysql

mysql -u 'name' -p 'xx'

  1. 選取mysql庫,查看user表

select host, user, authentication_string, plugin from user;

這裡host 是不允許遠程連接的

  1. 授權 root 用戶的所有許可權並設置遠程訪問

在mysql8.0創建用戶和授權和之前不太一樣了,其實嚴格上來講,也不能說是不一樣,只能說是更嚴格,mysql8.0需要先創建用戶和設置密碼,然後才能授權
MySQL 安裝完成後只支持 localhost 訪問,我們必須設置一下才可以遠程訪問

3.1 先創建一個用戶

create user 'guo_test'@'%' identified by '123123';

3.2 再進行授權

grant all privileges on . to 'guo_test'@'%' with grant option;

3.3 強調一點,如果還是用原來5.7的那種方式,會報錯誤

grant all privileges on . to 'root'@'%' identified by '123123';

3.4 授權 root 用戶的所有許可權並設置遠程訪問

GRANT ALL ON . TO 'root'@'%';

GRANT ALL ON 表示所有許可權,% 表示通配所有 host,可以訪問遠程。

3.5 刷新許可權

flush privileges;

3.6 補充

參考這裡-stack over flowwer

mysql 官網-創建用戶語法

mysql 官網-修改用戶語法

如果這裡我們遠程依然連接不上,請修改用戶授權規則

ALTER USER 'guo_test'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

我們一般情況下,禁止root用戶遠程連接,所以我這裡採取test賬戶授權遠程連接

MySQL 安裝完成

ok這裡我們就成功安裝上mysql,可以嘗試用mysql client remote 鏈接一下。

MariaDb 安裝

Redis 安裝

redis 安裝既可以採用yum install 方式安裝,也可以採用源碼方式安裝,yum方式安裝時,為了提高安裝速度,可以切換redis鏡像源。

這裡我們採用源碼方式安裝

yum方式安裝參考這裡-Centos 7下使用yum安裝redis

yum方式安裝參考這裡-Centos 7下使用yum安裝redis

源碼安裝

安裝Redis需要知道自己需要哪個版本,有針對性的安裝,比如如果需要redis GEO這個地理集合的特性,那麼redis版本就不能低於3.2版本,由於這個特性是3.2版本才有的。另外需要註意的是,Redis約定次版本號(即第一個小數點後的數字)為偶數的版本是穩定版(如2.8版、3.0版),奇數版本是非穩定版(如2.7版、2.9版),生產環境下一般需要使用穩定版本

下載redis 安裝包

mkdir -p /home/redis
cd /home/redis
wget http://download.redis.io/releases/redis-4.0.2.tar.gz

編譯

redis是通過源碼安裝的,所以我們需要先安裝gcc編譯器,同時安裝redis所依賴的tcl包

yum install gcc tcl

解壓安裝包並安裝


tar xzf redis-4.0.2.tar.gz/ tar -xzvf redis-4.0.2.tar.gz
cd redis-4.0.2
make
make install

Redis沒有其他外部依賴,安裝過程很簡單。編譯後在Redis源代碼目錄的src文件夾中可以找到若幹個可執行程式,安裝完後,在/usr/local/bin目錄中可以找到剛剛安裝的redis可執行文件

啟動和停止Redis

啟動Redis

  1. 直接啟動

直接運行redis-server即可啟動Redis

  1. 通過初始化腳本啟動Redis

在Redis源代碼目錄的utils文件夾中有一個名為redis_init_script的初始化腳本文件。需要配置Redis的運行方式和持久化文件、日誌文件的存儲位置。步驟如下:

2.1 配置初始化腳本

首先將初始化腳本複製到/etc/init.d 目錄中,文件名為 redis_埠號,其中埠號表示要讓Redis監聽的埠號,客戶端通過該埠連接Redis。然後修改腳本第6行的REDISPORT變數的值為同樣的埠號。

2.2 建立以下需要的文件夾

|目錄名|Value|

|/etc/redis|存放Redis的配置文件|

|/var/redis/埠號|存放Redis的持久化文件|

以上是需要創建的兩個文件以及文件說明,如果沒有創建則創建

2.3 修改配置文件

首先將配置文件模板(redis-4.0.2/redis.conf)複製到/etc/redis 目錄中,以埠號命名(如“6379.conf”),然後按照下表對其中的部分參數進行編輯。

現在也可以使用下麵的命令來啟動和關閉Redis了

/etc/init.d/redis_6379 start
/etc/init.d/redis_6379 stop

讓Redis隨系統自動啟動,這還需要對Redis初始化腳本進行簡單修改,執行命令:

vim /etc/init.d/redis_6379

在打開的redis初始化腳本文件頭部第四行的位置,追加下麵兩句


# chkconfig: 2345 90 10 
# description: Redis is a persistent key-value database    

//設置開機執行redis腳本

chkconfig redis_6379 on

通過設置開機啟動的操作後,以後也可以直接用下麵的命令對Redis進行啟動和關閉了,如下

service redis_6379 start

service redis_6379 stop

經過上面的部署操作後,系統重啟,Redis也會隨著系統自動啟動,並且上面的步驟里也配置了Redis持久化,下次啟動系統或Redis時,有緩存數據不丟失的好處。

停止Redis

考慮到 Redis 有可能正在將記憶體中的數據同步到硬碟中,強行終止 Redis 進程可能會導致數據丟失。正確停止Redis的方式應該是向Redis發送SHUTDOWN命令,方法為:

redis-cli SHUTDOWN

當Redis收到SHUTDOWN命令後,會先斷開所有客戶端連接,然後根據配置執行持久化,最後完成退出。
Redis可以妥善處理 SIGTERM信號,所以使用 kill Redis 進程的 PID也可以正常結束Redis,效果與發送SHUTDOWN命令一樣。

測試客戶端連接

測試遠程連接

這裡需要將redis里的配置文件埠綁定註釋掉

如果設置後,依然無法連接,請檢查防火牆

設置redis 密碼

臨時密碼

查看當前密碼

config get requirepass

此圖說明沒有設置密碼

設置密碼

config set requirepass password

永久設置

編輯redis配置文件

取消這裡註釋,設置你的密碼,重啟redis

附錄:redis常用配置註釋:


# 關閉保護模式
protected-mode no
# ip地址
bind 192.168.1.230
# 埠
port 6379
# 守護進程開啟,預設服務從後臺啟動
daemonize yes
# pid文件
pidfile /redis/pid/redis-6379.pid
# 日誌級別
loglevel verbose
# 日誌文件位置
logfile /redis/log/redis-6379.log
## redis持久化rdb,AOF
# redis持久化文件路徑,預設為當前路徑
dir /redis/data
# redis持久化文件名稱
dbfilename dump-6379.rdb
# 開啟AOF
appendonly yes
# AOF文件名稱
appendfilename "appendonly-6379.aof"
# 子進程在做rewrite時,主進程不調用fsync(由內核預設調度)
no-appendfsync-on-rewrite yes
## REPLICATION
# 當slave與master斷開連接,slave繼續提供服務
slave-serve-stale-data yes
slave-read-only yes
# slave ping master的時間間隔,單位為秒
repl-ping-slave-period 1
# 複製超時,單位為秒,須大於repl-ping-slave-period的值
repl-timeout 10
## Redis cluster
# 關閉集群配置
# cluster-enabled yes
# 節點配置文件,這個文件是服務啟動時自己配置創建的
cluster-config-file nodes-6379.conf
# 集群中各節點相互通訊時,允許"失聯"的最大毫秒數,如果超過沒向其它節點彙報成功,就認為該節點已掛
cluster-node-timeout 5000
# 將該項設置為0,不管slave節點和master節點間失聯多久都會一直嘗試failover
cluster-slave-validity-factor 0
# slave ping master的時間間隔,單位為秒
repl-ping-slave-period 1

Mongodb 安裝


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本片博文主要記錄Python中正則表達式re模塊和中文分詞模塊jieba ...
  • 9、迴圈結構 9、1 分支結構——if Ø 格式一中,條件成立執行代碼塊內容,切如果只有一條語句可以省略{} Ø 格式二中:條件成立執行代碼1內容,條件不成立執行代碼塊2的內容 Ø 格式三種:條件1成立執行代碼塊1如果不成立繼續向下執行條件2,如果條件2成立執行代碼塊2,如果條件2也不成立繼續向下執 ...
  • 一、字元串運算 String類 1.概述 String是特殊的引用數據類型,它是final類。 2.構造方法 String str = "abc"; 相當於: char date[] = {'a','b','c'}; String str = new String{data}; 3.主要方法 cha ...
  • 題意 "題目鏈接" 給出長度為$n$的序列,每次詢問區間$[l, r]$,要求最大化 $max |x − y| : L_i ≤ x, y ≤ R_i and A_x = A_y$ Sol 標算神仙的一批看不懂。 維護好每個數出現的左右位置之後直接上不刪除莫隊就行了 cpp include const ...
  • 目錄 [TOC] 1. 安裝Jupyter notebook 2. 啟動Jupyter notebook 3. 文件管理 4. 基本的操作與概念 5. 常用快捷鍵 (一)安裝Jupyter notebook 1.在控制台輸入: pip install jupyter 2.註意: 很多網上的教程推薦安 ...
  • 通過以下幾個步驟解決: 1.install-package entityFramework; 2.更新 nuget; 3.更新 visual studio; 我是通過第三個步驟解決的。 ...
  • 前端 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Tex ...
  • [TOC] 前言 本文主要是以 C 為例介紹 .NET 中的三種指針類型(本文不包含對於函數指針的介紹): 對象引用 、 非托管指針 、 托管指針 。 學習是一個不斷深化理解的過程,藉此博客,把自己關於 .NET 中指針相關的理解和大家一起討論一下,若有表述不清楚,理解不正確之處,還請大家批評指正。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...