前段時間我我的Google服務器意外不能用,而且我犯了一件很低級的錯誤,直接在gcp講服務器實例給釋放掉,致使個人數據所有丟失,如今新搞一個服務器,順便記錄一下CentOS 7.4 MySQL&MariaDB&Redis&Mongodb 的安裝html
1祝你們:諸事順利,2019 發大財!
node
本人將一如既往,更新個人博客,努力爲博客園貢獻文章!mysql
隨着CentOS 7 MySQL的發佈,世界上最流行的開源關係數據庫管理系統在CentOS的倉庫中再也不可用,MariaDB已經成爲默認的數據庫系統。 MariaDB是一個向後兼容的二進制嵌入式MySQL替代品redis
因爲mysql在Linux的默認存儲庫中不可用,這裏咱們採用mysql yum 存儲庫安裝mysql軟件包sql
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpmmongodb
與其餘使用yum的軟件包同樣安裝MySQL,在安裝過程當中,yum可能會提示您導入MySQL GPG密鑰。 鍵入y並按Enter鍵數據庫
yum install mysql-community-servervim
安裝完成後,啓用並啓動MySQL服務類型:centos
sudo systemctl enable mysqld緩存
sudo systemctl start mysqld
咱們能夠經過鍵入如下命令來檢查MySQL服務狀態
sudo systemctl status mysqld
當第一次啓動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
mysql -u 'name' -p 'xx'
select host, user, authentication_string, plugin from user;
這裏host 是不容許遠程鏈接的
在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 補充
若是這裏咱們遠程依然鏈接不上,請修改用戶受權規則
ALTER USER 'guo_test'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
咱們通常狀況下,禁止root用戶遠程鏈接,因此我這裏採起test帳戶受權遠程鏈接
ok這裏咱們就成功安裝上mysql,能夠嘗試用mysql client remote 連接一下。
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版),生產環境下通常須要使用穩定版本
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-server便可啓動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發送SHUTDOWN命令,方法爲:
redis-cli SHUTDOWN
當Redis收到SHUTDOWN命令後,會先斷開全部客戶端鏈接,而後根據配置執行持久化,最後完成退出。
Redis能夠妥善處理 SIGTERM信號,因此使用 kill Redis 進程的 PID也能夠正常結束Redis,效果與發送SHUTDOWN命令同樣。
這裏須要將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