安裝Centos7 、 Mysql8 叢集,實現讀寫分離 高可用(二)-- 資料庫安裝篇
零、寫在前面
為了嘗試新技術和業務需要,因此打算搞一套這樣的環境玩兒一下
伺服器的安裝請見上一篇
一、硬體規劃
我用的是自己的本機(8核、16G),劃分出三臺虛擬機器(一主兩從--MySQL)
主機名 | IP | CPU | 記憶體 | 用途 | 備註 |
centos7One | 192.168.122.21 | 2 | 4 | 主/寫(MySQL)主(Redis) | Mysql8/Redis4/Centos7 |
centos7Two | 192.168.122.22 | 1 | 2 | 從/讀(MySQL)主(Redis) | Mysql8/Redis4/Centos7 |
centos7Three | 192.168.122.23 | 1 | 2 | 從/讀(MySQL)從(Redis) | Mysql8/Redis4/Centos7 |
centos7Four | 192.168.122.24 | 1 | 2 | 從(Redis) | Redis4/Centos7 |
基本的規劃就是如上面所寫
後續會在這四臺伺服器上安裝redis的叢集
二、聊聊其他
1、 網上好多種安裝mysql8的方法,我最開始使用的是編譯安裝的方式,這種方式的最大缺點就是過程較慢
特別是make這一步,需要好久好久。。。然後一旦有問題就會徹底崩潰,如果你像我一樣沒把握
建議還是像我一樣使用更靠譜的yum方式安裝比較好
2、 請先參考這篇文章 https://www.cnblogs.com/LiuChunfu/p/8052890.html
這篇文章先闡述了一下rpm和yum之間的關聯關係,同時也介紹了linux下各個資料夾的一些作用。很不錯
三、安裝Mysql8
0、 建立新使用者和刪除老版本
如果在安裝系統的時候,沒有為mysql建立獨立的使用者和劃分獨立的空間,那麼需要在這裡建立一下
建立使用者組和使用者
groupadd mysql
useradd -r -g mysql -s /mysql
找到原先安裝的mysql的rpm和依賴
rpm -pa | grep mysql
如果有顯示結果,那麼使用下面的命令逐個刪除
yum remove mysql xxx (xxx就是要刪除的檔名)
以上的操作不會刪除mysql 的配置檔案,需要手動操作
find / -name mysql
找到所有相關的MySQL的配置資訊,然後逐條刪除即可
rm -rf xxx (xxx)就是配置檔案
由於Mysql在Centos7中收費了,所以Centos7開始免費整合的資料庫是MariaDB而安裝Mysql會和MariaDB衝突,
因此需要先刪除MariaDB,首先搜尋
rpm -pa | grep mariadb
可能看到的結果如下
mariadb-libs-5.5.56-2.e17.x86_64
刪除之
rpm -e mariadb-libs-5.5.56-2.e17.x86_64
如果提示“依賴檢測失敗”,適用如下命令強刪
rpm -e --nodeps mariadb-libs-5.5.56-2.e17.x86_64
1、下載及安裝
先從這裡 https://dev.mysql.com/downloads/repo/yum/ 獲取rpm包
下載後上傳到你的伺服器,或者使用wget命令獲取
wget http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
上傳成功後,使用yum在本地安裝
yum localinstall mysql80-community-release-el7-1.noarch.rpm
安裝完畢之後,檢查一下
yum repolist enabled | grep "mysql.*-community.*"
有類似下圖的效果說明成功
如果看到上圖,我們就執行下面的命令,安裝MySQL的服務端
yum install -y mysql-community-server
一般來說,到這裡應該能安裝成功,然後我們啟動並檢視MySQL狀態吧,如下圖紅框所示
2、密碼那些事
因為沒有密碼,我們需要讓MySQL給我們生成一套,這麼玩兒
先把/etc/my.cnf配置檔案中的"default-authentication-plugin=mysql_native_password"解註釋
改完上圖所示部分後,重啟 systemctl restart mysqld
這樣,MySQL會給我們在/etc/log/mysqld.log下,為root使用者生成了一個新的密碼
可以通過grep 'temporary password' /var/log/mysqld.log檢視到
3、現在登入吧
mysql -uroot -p
(你的密碼)
但是,你現在還是幹不了任何事,比如我想使用某個資料庫都不行,說是需要修改密碼,那就改唄。。。
那我們先隨手寫一個“123456”,還是不行,說是強度太低,如下圖那咱們改一下強度規則唄
如上圖所示,第一個是修改強度限制,0是最低級別,數字越大,限制越多
第二個是密碼長度最低不能少於6位,然後我還用之前的那個“123456”,這次沒問題啦。
4、遠端登入
上面解決的是本地訪問,那麼遠端訪問的咋辦?修改規則唄
但是,傳統的方式不能用了,如下圖所示
解決方法1:建立一個單獨的使用者
其中,第一個命令是建立一個密碼為123456,同時訪問ip為全ip(%)的使用者
第二個命令是讓這個使用者擁有全部的DDL和DML許可權
建立完畢之後,應該就可以使用給這個新使用者登入了,只是他沒有給別人賦許可權的許可權
如果需要,可以如下這麼玩兒
GRANT all PRIVILEGES ON databasename.tablename TO 'username'@'host' IDENTIFIED BY 'xxxxxx' WITH GRANT OPTION;
解決方法2:直接改許可權
由於MySQL8新增了一種密碼型別“caching_sha2_password”
所以有些擁有這個屬性的使用者就是不能從遠端登入,
我們可以通過檢視mysql資料庫的user表獲取相關資訊
上圖中的這個lalala使用者就鐵定不能從遠端登入,其實略作修改即可
update user set plugin='mysql_native_password' where user='lalala';
同時,上圖的root使用者也不能從遠端登入,而root的原因是由於host的型別只允許本機
update user set plugin='%' where user='root';
5、別忘了防火牆
如果你的伺服器之前設定過防火牆的相關,那麼進行完上面那步就可以登入了
如果不行,那就再該點東西吧
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl mask firewalld.service
然後,安裝並開啟iptables
yum install iptables-services -y
systemctl enable iptables
systemctl start iptables
再在iptables中加一條關於MySQL的埠限制規則,如下圖的兩個紅框中所示
重啟iptables
systemctl enable iptables.service
systemctl restart iptables.service
到這兒為止,應該就可以了,然後從遠端測試一下吧
搞定
參考資料
https://blog.csdn.net/managementandjava/article/details/80039650
https://www.linuxidc.com/Linux/2016-09/135288.htm
https://blog.csdn.net/qq_16075483/article/details/80296611
相關推薦
安裝Centos7 、 Mysql8 叢集,實現讀寫分離 高可用(二)-- 資料庫安裝篇
零、寫在前面 為了嘗試新技術和業務需要,因此打算搞一套這樣的環境玩兒一下 伺服器的安裝請見上一篇一、硬體規劃 我用的是自己的本機(8核、16G),劃分出三臺虛擬機器(一主兩從--MyS
安裝Centos7 、 Mysql8 叢集,實現讀寫分離 高可用(一)-- 作業系統安裝篇
零、寫在前面 為了嘗試新技術和業務需要,因此打算搞一套這樣的環境玩兒一下 我的虛擬機器環境是VMWare12 這是第一篇,Centos7系統的安裝篇一、硬體規劃 我用的是自己的本
安裝Centos7 、 Mysql8 叢集,實現讀寫分離 高可用(三)-- 主從設定
零、寫在前面 為了嘗試新技術和業務需要,因此打算搞一套這樣的環境玩兒一下 作業系統及資料庫的安裝請見前兩篇一、理論依據 不再贅述我的硬體規劃等細節 這次僅用到兩臺虛擬機器,一主一
安裝Centos7 、 Mysql8 叢集,實現讀寫分離 高可用(四)-- MyCat讀寫分離
零、說在前面 先吐個槽,這點東西折騰了我四五天,最後還是一條告警拯救了我,下面進入正文 看了幾個MySQL的讀寫分離的中介軟體,貌似這個是比較流行的一個,雖然我不是BAT的粉絲,但是有好用的
MHA +maxscale 實現讀寫分離高可用架構實戰
MHA 相關原理 http://mp.blog.csdn.net/postedit/79183726 MHA http://mp.blog.csdn.net/postedit/79183743 最佳實戰 MySQL讀寫分離原理相關知識體系 http://blog.cs
Mysql主從配置,實現讀寫分離
windows安裝 建議 xid 分布式 唯一標識 -1 在線下載 命令 進行 大型網站為了軟解大量的並發訪問,除了在網站實現分布式負載均衡,遠遠不夠。到了數據業務層、數據訪問層,如果還是傳統的數據結構,或者只是單單靠一臺服務器扛,如此多的數據庫連接操作,數據庫必然會崩潰,
mysql-配置主從數據庫,實現讀寫分離
參考 image 增加 mysql- pan 位置 span 主從同步 原則 主從分離的原則:所有的寫操作在主數據庫中進行,因為主從分離的原理是涉及到同步數據,那就可能會出現延遲或者其他問題,就可能會出現臟數據。 所以,在從庫中進行的讀操作也必須是有一定容忍性的數據,例如日
MySQL 之 MHA + ProxySQL + keepalived 實現讀寫分離,高可用(二)
ProxySQL安裝 yum/rpm安裝 在github或官網上可以下載rpm包,wiki的Getting start章節有詳細介紹。 cat <<EOF | tee /etc/yum.repos.d/proxysql.repo [proxysql_repo] name= ProxyS
(二)mycat搭建主從複製,實現讀寫分離
環境準備 準備三臺linux伺服器,mycat、mycatmaster、mycatslave,分別安裝好mycat服務、mysql服務、mysql服務 mycatmaster和mycatslave基於binlog實現主從複製,見主從複製搭建 mycat配置 mycat權威指南中配
黃聰:Mysql主從配置,實現讀寫分離
大型網站為了軟解大量的併發訪問,除了在網站實現分散式負載均衡,遠遠不夠。到了資料業務層、資料訪問層,如果還是傳統的資料結構,或者只是單單靠一臺伺服器扛,如此多的資料庫連線操作,資料庫必然會崩潰,資料丟失的話,後果更是 不堪設想。這時候,我們會考慮如何減少資料庫的聯接,一方面採用優秀的程式碼框架,進行程式碼的優
Redis配置主從架構,實現讀寫分離
Redis的主從架構,能幫助我們實現讀多,寫少的情況,下面配置Redis架構,很簡單。 準備環境 vmware + rhel-server-7.0(101,102,103)+redis-3.2.0 1、在192.168.137.101安裝好redis3.
windows 下 MySQL讀寫分離、主從複製、通過amoeba代理實現讀寫分離 配置全過程
配置環境: 1.mysql5.6 2.windowsXP 主從複製配置 主伺服器配置 配置my.ini檔案 查詢my.ini地址 my.ini檔案在MySQL Server 5.6目錄下 我的my.ini路徑: C:\Documents and Settings\All
【無私分享:ASP.NET CORE 專案實戰(第十三章)】Asp.net Core 使用MyCat分散式資料庫,實現讀寫分離
目錄索引 簡介 MyCat2.0版本很快就釋出了,關於MyCat的動態和一些問題,大家可以加一下MyCat的官方QQ群:106088787。我們今天主要介紹一下,在我們的Asp.net Core中如何使用Mycat,這源於一個大神(Amamiya Yuuko)的分享,但是,這中
【Java】模擬Sping,實現其IOC和AOP核心(二)
接著上一篇,在上一篇完成了有關IOC的註解實現,這一篇用XML的方式實現IOC,並且完成AOP。 簡易的IOC框圖 註解的方式實現了左邊的分支,那麼就剩下右邊的XML分支: XmlContext:這個類是也是AbstractApplicationContext的子類,和AnnotationContext
MySQL分散式分片式分庫分表讀寫分離高可用叢集
首先要感謝 戒賢 整理的中介軟體列表。 在過去的一段時間,這份列表中除了 vitess,Mango,Sharding-JDBC我們沒有了解過之外,其他的中介軟體我們團隊(UCloud - UDB產品 - UDDB小分隊),都有一些研究。負責任地說, 這幾款中介軟體,除了MySQL router不建議使用(程式
Atlas讀寫分離[高可用]
tps .com 空格 str net bash slave vim mysqlslap Atlas下載地址: https://github.com/Qihoo360/Atlas/releases Atlas是出於360的, 比mysql-proxy更穩定, 部署起來更方
利用keepalived實現nginx調度器高可用(二)
font 相同 () ins db_name lob list default ast 構建LNAMMP架構:1) Nginx既是前端調度器,又是反向代理緩存服務器;2) 將php的session緩存於memcached中;3) 使用php-fpm上部署Discuz論壇
keepalived實現nginx調度器高可用(二)
amp web測試 keep 服務 vrrp value res 聲明 href keepalived實現nginx調度器高可用(二) 構建LNAMMP架構:1) Nginx既是前端調度器,又是反向代理緩存服務器;2) 將php的session緩存於memcach
MHA+ProxySQL 讀寫分離高可用
源碼包 技術 ups 修改 only date creat 臟讀 登陸 文檔結構如下: 1、ProxySQL說明 ProxySQL是mysql的一款中間件的產品,是靈活的mysql代理層,可以實現讀寫分離,支持query路由器的功能,支持動態指定sql進行緩存,支
mycat+mysql叢集:實現讀寫分離,分庫分表
1.mycat文件:https://github.com/MyCATApache/Mycat-doc 官方網站:http://www.mycat.org.cn/2.mycat的優點:配置簡單,靈活可實現讀寫分離可利用多種規則實現分庫分表心跳機制,自動踢出故障機組