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.% 忽略哪個庫的哪個表
借鑑其他人博文寫的精短版,希望有幫忙新手,也給自己一個小總結!