Mysql之Linux中mariadb主從複製

master主機mysql安裝配置mysql

  1.下載mariadb(Centos7開始mysql的名字)sql

    (1)其它方式(不推薦):rpm安裝/軟件源安裝數據庫

    (2)yum安裝(推薦):vim

      ①centos官方的yum源(功能少)centos

      ②阿里雲的yum源(精簡版)安全

        配置yum源倉庫:/etc/yum.repos.d(yum工具介紹已經配置)ide

        yum install mariadb-server mariadb 工具

      ③mysql官方的yum源(下載較慢,文件完整性最好)阿里雲

        A.手動配置倉庫目錄:編碼

          a.找到yum倉庫目錄,建立repo文件-------touch /etc/yum.repos.d/mariadb.repo 

          b.寫入指定的mysql官方yum源           

[mariadb]

name = MariaDB

baseurl = http://yum.mariadb.org/10.1/centos7-amd64

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=1

            c.此時yum會自動的加載這個repo文件,讀取內容

          d.下載mariadb數據庫,服務端和客戶端

        B.yum install MariaDB-server MariaDB-client

  2.啓動mariadb數據庫

    systemctl start mariadb---------用管理工具啓動數據庫

    systemcrl status mariadb-------查看狀態,或者ps進程,netstat端口信息      

  3.初始化數據庫,清除匿名用戶,以及test數據庫,保證數據庫安全,容許mysql遠程登陸

    mysql_secure_installation---------初始化命令

    注意容許遠程登錄

  4.修改mariadb數據庫的的中文支持

    (1)\s查看數據庫編碼信息

    (2)修改配置文件(yum源安裝的在/etc/my.cnf),支持中文

      vim /etc/my.cnf          

#服務端的編碼添加以下內容

[mysqld]

character-set-server=utf8

collation-server=utf8_general_ci

 

#客戶端的編碼以下

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

 

  5.mysql遠程登陸的設置

    grant all privileges on *.* to root@'%' identified by '123456';---------------不受權,遠程沒法登錄

  6.數據庫的備份與恢復

    備份-----mysqldump -uroot -p --all-databases > /tmp/alldata.sql

    恢復:

      方式一:進入數據庫,執行source命令讀取sql文件:

          (1)mysql -uroot -h192.168.160.134 -p 

          (2)source /tmp/alldata.sql  

      方式二:使用登陸命令導入數據

          mysql -uroot -p < /tmp/alldata.sql

      方式三:數據量較大時,使用第三方工具

  7.mysql主從複製(master-slave)

    主從機安裝好mariadb數據庫

    master主機:

      (1)修改mysql配置文件,開啓binlog日誌功能------vim /etc/my.cnf

#服務端添加一下代碼

[mysqld]

server-id=1

log-bin=mastermysql-bin

      (2)重啓數據庫生效binlog日誌文件--------systemctl restart mariadb

      (3)登陸數據庫---------mysql -uroot -p

      (4)主庫master建立用於主從複製的用戶---------create user 'abc'@'%' identified by '123456';

      (5)受權slave給主從複製的用戶:

          grant replication slave on *.* to 'abc'@'%';

          grant select on *.* to 'abc'@'%';-------------受權查看給主從複製帳號,以便後期登陸使用

      (6)進行鎖表,防止在主從複製設置過程當中數據寫入------flush table with read lock;

      (7)導出當前master主庫數據,發送給slave從庫,保證起點的一致性:

          mysqldump -uroot -p --all-databases > /tmp/alldata.sql

          scp /tmp/alldata.sql root@192.168.160.130:/tmp/

        (8)slave從庫機讀取/tmp/alldata.sql進行master主庫數據同步,刪除多餘數據庫,同時進行slave從庫機配置

      (9)slave從庫機配置完後才能後,解鎖,進行數據寫入,查看從庫是否正常執---------解鎖-----------unlock tables;

slave從機mysql安裝配置

  下載安裝同master主機

    下載mariadb-------------啓動mariadb----------------是否初始化自選

  7-(8)-1.將master主機的數據庫備份文件發送到slave進行恢復 

    目的是保持主從數據庫的數據和配置的一致性 

    mysql -uroot -p < /tmp/alldata.sql

    刪除多餘的數據庫

  7-(8)-2.修改slave從庫機的配置文件,開啓id, 設爲只讀模式-----------vim /etc/my.cnf

#服務端添加一下代碼

[mysqld]

server-id=1000

read-only=true  

    7-(8)-3.重啓slave從庫機的mariadb數據庫----------systemctl restart mariadb

  7-(8)-4.登陸slave從庫機數據庫-----------mysql -uroot -p

  7-(8)-5.執行命令,創建主從複製關係

change master to master_host='192.168.160.134',  --主庫master地址

master_user='abc',                --用於主從複製在主庫建立的用戶

master_password='123456',            --用於主從複製在主庫建立的用戶密碼

master_log_file='mastermysql-bin.000001',       --主庫biinary log日誌文件,主庫my.cnf配置了日誌名

master_log_pos=616;             --主庫數據起點(在主庫mysql中執行命令show master status能夠查看)

    7-(8)-6.開啓從庫的slave功能-----start salve;

  7-(8)-7查看從庫的狀態,檢測是否複製成功:

    show slave status\G ;

    查看以下兩個參數是不是yes,主從複製即爲正確:

      Slave_IO_Running: Yes

      Slave_SQL_Running: Yes

  7-(8)-8.重啓數據庫進入,此時須要輸入密碼,也可以使用主從複製帳號登陸,和主庫機的帳號密碼同樣,回到主機進行解鎖操做

相關文章
相關標籤/搜索