天天看點

mysql5.7.18的安裝與主從複制

CentOS6.7安裝mysql5.7.18

  

mysql5.7.18的安裝與主從複制

  1、  解壓到/usr/local目錄

    # tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /usr/local

  2、  mysql-5.7.18-linux-glibc2.5-i686檔案夾重命名為mysql

    # cd /usr/local

    # mv mysql-5.7.18-linux-glibc2.5-i686/ mysql

  3、  建立mysql使用者組和mysql使用者

    # groupadd mysql

    # useradd -r -g mysql mysql

  4、  建立資料目錄

    # cd /usr/local/mysql

    # mkdir data

  5、  更改所有者以及授權755

    # chown -R mysql:mysql mysql/

    # chmod -R 755 mysql/

  6、  初始化mysqld

    # ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

     

mysql5.7.18的安裝與主從複制

    記錄下root的初始密碼: GjlI08>p4kDw

  7、  将mysqld添加成服務,并啟動它

    # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    建立mysql預設的配置檔案/etc/my.cnf,并添加圖檔中内容

    

mysql5.7.18的安裝與主從複制

    # vim /etc/my.cnf

    儲存并退出my.cnf,啟動mysqld

    # service mysqld start

    出現如下資訊表示啟動成功

     

mysql5.7.18的安裝與主從複制

    檢視mysql是否啟動成功

    # ps -ef|grep mysql

mysql5.7.18的安裝與主從複制

    當然也可以檢視mysqld的狀态

    # service mysqld status

mysql5.7.18的安裝與主從複制

  8、  登入mysql并修改root密碼

    # ./bin/mysql -uroot –p

    輸入初始密碼,步驟6中有生成,出現如下資訊表示登入成功

mysql5.7.18的安裝與主從複制

    修改root密碼

    mysql> SET PASSWORD = PASSWORD('123456');

    mysql> FLUSH PRIVILEGES;

    初次登入沒有修改root的密碼,操作資料庫會出現如下錯誤提示,那麼需要修改root使用者的密碼

      ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

  9、  設定mysql遠端可通路(前提是防火牆必須關閉,chkconfig iptables off:設定自動啟動為關閉,service iptables stop:關閉防火牆)

    先登入到mysql

    mysql> use mysql

    mysql> update user set host = '192.168.0.4' where user = 'root';

    192.168.0.4即是可遠端通路本地mysql的遠端ip,若想任意ip都能通路本地mysql,那麼隻需要将192.168.0.4換成%即可

    mysql> update user set host = '%' where user = 'root';

mysql主從複制

  windows上mysql做master,linux上mysql做slave,mysql版本是5.7.18;windows的ip為192.168.0.4,linux的ip為192.168.0.223

  1、master上開啟binlog日志

         在mysql的home目錄找到my.ini檔案(沒有則建立),配置上如下内容

[mysqld]
# set basedir to your installation path
basedir=D:\\mysql-5.7.18
# set datadir to the location of your data directory
datadir=D:\\mysql-5.7.18\\data
port = 3306


log-bin           = mysql-bin  #[必須]啟用二進制日志
server-id         = 4          #[必須]伺服器唯一ID,預設是1,最好取ip的後3位
expire-logs-days  = 7           #隻保留7天的二進制日志,以防磁盤被日志占滿
binlog-ignore-db  = mysql       #不備份的資料庫
binlog-ignore-db  = information_schema
binlog-ignore-db  = performation_schema
binlog-ignore-db  = sys
binlog-do-db=mybatis #需要做複制的資料庫名      

         測試log_bin是否成功開啟

         mysql> show variables like '%log_bin%';

         出現下圖,log_bin為ON則表示開啟成功,OFF表示開啟失敗

mysql5.7.18的安裝與主從複制

  2、master的資料庫中建立備份賬号:backup為使用者名,%表示任何遠端位址,如下表示密碼為1234的任何遠端位址的backup都可以連接配接master主機

    mysql> grant replication slave on *.* to 'backup'@'%' identified by '1234';

    mysql> select user,authentication_string,host from user;

    可看到我們剛建立的備份賬号:

mysql5.7.18的安裝與主從複制

  3、拷貝資料

         重新開機MySQL服務并設定讀取鎖定

      net stop MySQL

      net start MySQL

      登入mysql

           mysql> flush tables with read lock;

    讀取鎖定的意思是隻能讀取,不能更新,以便獲得一個一緻性的快照

    檢視主伺服器上目前的二進制日志名和偏移量值   

    mysql> show master status \G

mysql5.7.18的安裝與主從複制

    複制的過程如下:

mysql5.7.18的安裝與主從複制

    File表示實作複制功能的日志,即上圖中的Binary log;Position則表示binlog日志檔案的偏移量之後的都會同步到slave中,那麼在偏移量之前的則需要我們手動導入

         從master導出資料,然後導入到slave中

                另外開一個指令視窗,用mysqldump指令進行資料的導出

       

mysql5.7.18的安裝與主從複制

      将d:\a.txt拷貝到slave上,然後導入到mysql資料庫中,slave上的mybatis資料庫不存在則先建立,然後再導入

mysql5.7.18的安裝與主從複制

      導出是mysqldump,導入是mysql

  4、配置slave(192.168.0.223)

         slave是linux環境,mysql的配置檔案是/etc/my.cnf,不存在則建立,配上如下内容

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
port=3306

log-bin=mysql-bin
server-id=223      

         重新開機slave資料庫

      # service mysqld restart

         登入slave資料庫,并做如下設定

      mysql> stop slave;

      mysql> change master to

                    master_host='192.168.0.4',

                    master_user='backup',

                    master_password='1234',

                    master_log_file='mysql-bin.000005',

                    master_log_pos=601;

                各個參數含義:

                master_host 實作複制的主機的IP位址

                master_user 實作複制的遠端登入master的mysql的使用者,在步驟2有設定

                master_password 實作複制的遠端登入master的mysql的面,在步驟2有設定

                master_log_file 實作複制的binlog日志檔案 在步驟3标紅的框框中

                master_log_pos 實作複制的binlog日志檔案的偏移量 在步驟3标紅的框框中

      mysql> start slave;

    檢視slave從機的狀态

                mysql> show slave status \G

      

mysql5.7.18的安裝與主從複制
mysql5.7.18的安裝與主從複制

      若圖中标記的那兩項的值為Yes,則表示slave設定成功

  5、關閉掉主資料庫的讀取鎖定

         mysql> unlock tables;

  6、測試

    前面沒出問題的話,那麼master上的資料操作都會同步到slave上

文檔位址

  點這裡

繼續閱讀