1. 程式人生 > >mysql主從資料庫設定(精簡版)

mysql主從資料庫設定(精簡版)

本文借鑑於其他博文,主要針對於小白做一個精簡版,也算做一個總結吧!

準備:兩個不同的主機資料庫(個人是本地和正式服),同時兩臺機最好先建立好相同的使用者名稱及密碼,保證賬戶能夠連線成功!建議用Navicat檢視化操作建立使用者以及連線,以下附上建立使用者的命令!

授權格式:grant 許可權 on 資料庫.* to 使用者名稱@登入主機 identified by "密碼";

配置主伺服器

1.更改配置檔案,首先檢查你的主伺服器上的my.cnf檔案中是否已經在[mysqld]模組下配置了log-bin和server-id
(注意上面的log-bin和server-id的值都是可以改為其他值的,如IP最後一段數字,接著重啟伺服器)

[mysqld]

log-bin=mysql-bin

server-id=1

2.執行下面的語句獲取主服二進位制日誌的資訊

mysql> show master status;

效果圖如下(File和Position記一下,一會考)
效果圖片如下

配置從伺服器

1.首先檢查從伺服器上的my.cnf檔案中是否已經在[mysqld]模組下配置leserver-id

[mysqld]

server-id=2

2.配置同步引數,mysql執行如下命令(如果執行失敗,可多次執行):

 CHANGE MASTER TO 
MASTER_HOST='119.23.58.x', 
MASTER_USER='copy_user', 
MASTER_PORT = 3306,
MASTER_PASSWORD='01da2ca9dc', 
MASTER_LOG_FILE='mysql-bin.000001', 
MASTER_LOG_POS= 8590

引數不區別大小寫

  • MASTER_HOST:主服ip地址
  • MASTER_USER:主服資料庫賬號
  • MASTER_PORT :主服mysql埠
  • MASTER_PASSWORD:主服密碼
  • MASTER_LOG_FILE:剛才說好要考的File
  • MASTER_LOG_POS:剛才說好會考的Pos

3.mysql啟動主從同步

mysql> slave start; 

4.mysql檢視同步狀態

show slave status;

效果如下:
檢視是否啟動同步成功

主要看Slave_IO_Running和Slave_SQL_Running兩個值是否都為Yes,如果是剛恭喜你同步成功了。若不是,則很可能是密碼錯誤了。具體檢視對應的Last_IO_Error和Last_SQL_Error兩個提醒就知道了。
如果要修改從服第二步操作引數的話,建議先slave stop停一下服務,再執行配置操作,完後再執行slave start啟動同步,以及show slave status;檢視同步狀態!(注意:Last_IO_Error,其實指的還是mysql,我一開始以為是伺服器IO讀寫)

同步部分資料有兩個思路,1.master只發送需要的;2.slave只接收想要的。詳細

binlog-do-db 二進位制日誌記錄的資料庫(多資料庫用逗號,隔開)
binlog-ignore-db 二進位制日誌中忽略資料庫 (多資料庫用逗號,隔開)
預設是同步所有庫表的,如夢需要指定庫存可配置從庫mysql的配置檔案:
replicate-do-db 設定需要複製的資料庫(多資料庫使用逗號,隔開)
replicate-ignore-db 設定需要忽略的複製資料庫 (多資料庫使用逗號,隔開)
replicate-do-table 設定需要複製的表
replicate-ignore-table 設定需要忽略的複製表
replicate-wild-do-table 同replication-do-table功能一樣,但是可以萬用字元

增加萬用字元的兩個配置
replicate-wild-do-table=db_name.% 只複製哪個庫的哪個表
replicate-wild-ignore-table=mysql.% 忽略哪個庫的哪個表

配置從服

借鑑其他人博文寫的精短版,希望有幫忙新手,也給自己一個小總結!