1. 程式人生 > >安裝Centos7 、 Mysql8 叢集,實現讀寫分離 高可用(二)-- 資料庫安裝篇

安裝Centos7 、 Mysql8 叢集,實現讀寫分離 高可用(二)-- 資料庫安裝篇

零、寫在前面

    為了嘗試新技術和業務需要,因此打算搞一套這樣的環境玩兒一下

    伺服器的安裝請見上一篇

一、硬體規劃

    我用的是自己的本機(8核、16G),劃分出三臺虛擬機器(一主兩從--MySQL)

主機名IPCPU記憶體用途備註
centos7One192.168.122.2124主/寫(MySQL)主(Redis)Mysql8/Redis4/Centos7
centos7Two192.168.122.2212從/讀(MySQL)主(Redis)Mysql8/Redis4/Centos7
centos7Three192.168.122.2312從/讀(MySQL)從(Redis)Mysql8/Redis4/Centos7
centos7Four192.168.122.2412從(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的優點:配置簡單,靈活可實現讀寫分離可利用多種規則實現分庫分表心跳機制,自動踢出故障機組