記錄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
客戶端連接
- 進入mysql
mysql -u ‘name‘ -p ‘xx‘
- 選取mysql庫,查看user表
select host, user, authentication_string, plugin from user;
這裏host 是不允許遠程連接的
- 授權 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
- 直接啟動
直接運行redis-server即可啟動Redis
- 通過初始化腳本啟動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常用配置註釋:
# 關閉保護模式
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 安裝
記錄CentOS 7.4 上安裝MySQL&MariaDB&Redis&Mongodb