<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      詳細說明Mysql數據庫之主從分離案例代碼

      [摘要]本篇文章主要介紹了Mysql數據庫之主從分離實例代碼,MySQL數據庫設置讀寫分離,可以使對數據庫的寫操作和讀操作在不同服務器上執行,提高并發量和相應速度。介紹MySQL數據庫設置讀寫分離,可以使對數據庫的寫操作和讀操作在不同服務器上執行,提高并發量和相應速度,F在的網站一般大點的,都采用有數據庫...
      本篇文章主要介紹了Mysql數據庫之主從分離實例代碼,MySQL數據庫設置讀寫分離,可以使對數據庫的寫操作和讀操作在不同服務器上執行,提高并發量和相應速度。

      介紹

      MySQL數據庫設置讀寫分離,可以使對數據庫的寫操作和讀操作在不同服務器上執行,提高并發量和相應速度。

      現在的網站一般大點的,都采用有數據庫主從分離、讀寫分離,即起到備份作用也可以減輕數據庫的讀寫的壓力,一直聽說過這些,但是自己從沒有自己動手親手實踐過,今天有時間實踐一下,記錄下過程。

      實驗環境

      我準備了兩臺服務器,一個是本機電腦,一個是遠程vps,分別在兩臺機子上裝的有數據庫。
      MySQL安裝我就不介紹了,這里需要注意的是:MySQL安裝的版本最好一致,如果不一致,低版本向高版本讀的時候可能有問題,最好保持一致。

      主庫master

      45.78.57.4 centos 7 Linux系統 , mysql版本 5.1.73

      從庫slave

      本機127.0.0.1 macOs系統, mysql版本 5.1.73

      配置

      創建用戶

      在主庫創建一個用戶,用于從庫讀取主庫的執行日志。

      需要在mysql命令行里執行,需要先登錄命令行

      代碼如下:

      GRANT REPLICATION SLAVE ON *.* TO 'test'@'45.78.57.4' IDENTIFIED BY 'test';

      修改my.cnf

      linux系統在 /etc/my.cnf ,mac系統在安裝的MySQL的目錄,windows也一樣。

      在my.cnf文件里增加一下代碼

      server-id = 1 //數據庫ID號
      log-bin=master-bin //啟用二進制日志
      log-bin-index=master-bin.index //二進制日志名稱

      這里注意不要放在文件的末尾,要放在前面,即[mysqld]后,這里放上我的my.cnf內容

      [mysqld]
      server-id=1
      log-bin=master-bin
      log-bin-index=master-bin.index
      
      datadir=/var/lib/mysql
      socket=/var/lib/mysql/mysql.sock
      user=mysql
      symbolic-links=0
      max_allowed_packet=100M
      
      [mysqld_safe]
      log-error=/var/log/mysqld.log
      pid-file=/var/run/mysqld/mysqld.pid

      查看狀態

      登陸mysql命令行后,輸入show master status,如果出現下面信息代表主庫配置完成

      mysql> show master status;
      +-------------------+----------+--------------+------------------+
        File         Position   Binlog_Do_DB   Binlog_Ignore_DB  
      +-------------------+----------+--------------+------------------+
        master-bin.000001    672675                    
      +-------------------+----------+--------------+------------------+
      1 row in set (0.00 sec)

      記錄下File和Position兩個內容,從庫配置的時候會用到這個。

      從庫配置

      在本機電腦(從庫)上找到my.cnf文件,然后添加以下內容,這個配置和主庫的配置意思是一樣的

      server-id=2
      relay-log=slave-relay-bin
      relay-log-index=slave-relay-bin.index

      注意確定和主庫的位置一樣,我就因為位置放置在末尾導致一直關聯不上。

      關聯主從庫

      最后一步很重要,登錄從庫的MySQL命令行,執行以下代碼,主要是關聯主庫的一些信息。

      change master to master_host='45.78.57.4',  #Master 服務器Ip
      master_port=3306,
      master_user='test',
      master_password='test', 
      master_log_file='master-bin.000001', #Master日志文件名
      master_log_pos=672675; #Master日志同步開始位置

      注意是否執行成功,如果執行失敗就好好檢查下代碼,看看哪里寫錯了。

      如果執行正常,就啟動從庫slave,并查看下連接狀態。

      //需要再mysql命令行執行 
      start slave; 
      show slave status\G; //查看slave連接狀態

      狀態信息

              Slave_IO_State: Waiting for master to send event
               Master_Host: 45.78.57.4
               Master_User: test
               Master_Port: 3306
              Connect_Retry: 60
             Master_Log_File: master-bin.000001
           Read_Master_Log_Pos: 672913
              Relay_Log_File: slave-relay-bin.000044
              Relay_Log_Pos: 504
          Relay_Master_Log_File: master-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

      注意!

      這兩個狀態必須為Yes才算成功,如果不是,則檢查上面步驟那一步配置錯誤。

      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes

      測試

      現在你在主庫上添加一條數據,看看從庫上是否有一個相同的數據,如果有則配置正常,功能使用正常。

      主從分離的原理主要是:開啟主庫的執行日志功能,然后從庫讀取主庫的日志信息,然后將主庫執行過的SQL語句在從庫上面執行一遍就做到主從分離,主從數據保持一直,備份數據的功能。

      以上就是詳解Mysql數據庫之主從分離實例代碼的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清