windows 下 mysql 複製的實現

寫在最前邊 :php

     本次測試,屬於我的練習的過程,只有過程, 沒有總結.mysql

測試環境 :sql

 os : windows 7數據庫

mysql  : 5.5.47 windows

環境 : phpstudy 2016服務器

 

複製的基本步驟:ide

1  配置一個數據庫實例做爲master測試

2  配置一個數據庫實例做爲slave.spa

3  將slave鏈接到master日誌

實驗環境說明 :

本次實驗使用的phpstudy自帶的mysql,  

須要的準備工做, 

將phpstudy目錄下的mysql文件夾總體複製一份,拷貝到當前目錄下便可,原始的做爲master,複製的做爲slave,

測試的目錄結構大體以下:

E:\ 

        ---phpsudy 

                ---- MYSQL

                ---- MYSQL1

     重點 :  在拷貝的MYSQL1文件夾中,注意修改配置文件的相關,參數,一些默認的文件存儲路徑,避免在啓動實例的時候,提示一些沒必要要的錯誤.

 

******   配置 master   my.ini 實例  *******

# 以下是比較關鍵的信息, 在my.ini文件中添加沒有的便可.
# 這個是終端鏈接的端口
[client]
port=3306


[mysqld]
# 這個是實例啓動時端口
port=3306

# 這個是數據存放的目錄
basedir="E:/phpStudy/MySQL/"
datadir="E:/phpStudy/MySQL/data/"


# 這些關於日誌的配置
log-bin  =master-bin
log-bin-index  = master-bin.index

# 服務的id號 
server-id = 1

修改後請重啓服務.

******   配置 slave    my.ini 實例  *******

## 以下是比較關鍵的信息, 在my.ini文件中添加沒有的便可.
# 這個是終端鏈接的端口
[client]
port=3307


[mysqld]
# 這個是實例啓動時端口
port=3307

# 這個是數據存放的目錄,注意此處的目錄不一樣於master的目錄 master(MYSQL) <---->  slave(MYSQL1)
basedir="E:/phpStudy/MySQL1/"
datadir="E:/phpStudy/MySQL1/data/"


# 這些關於日誌的配置, relay-log-index  中繼日誌索引文件 ; relay-log 中繼日誌文件.
relay-log-index = slave-relay-bin.index
relay-log = slave-relay-bin


# 服務的id號 
server-id = 2

修改後請重啓服務.

 

啓動master  mysql  

經過dos,手動進入目錄  phpstudy->mysql->bin ,目錄下 ,執行 mysqld.exe 不須要加載任何參數.

---- 建立一個複製用於

master >  create user repl_user;

master > grant replication slave on *.*     to repl_user identified by 'xyzzy';

 

****** 鏈接 master 與 slave *****

在slave服務下

mysql> change master to
    -> master_host ='192.168.1.3',        # 這個是我本地局域網內的ip地址,
    -> master_port=3306,                  # master的端口
    -> master_user ='repl_user',          # 在master 上建立的能夠複製的帳號.
    -> master_password='xyzzy';
Query OK, 0 rows affected (0.22 sec)
mysql> start slave;                  #啓動slave 服務
Query OK, 0 rows affected (0.00 sec)

 

**********  測試環節  ********

1   master 和slave的狀態,

show master status\g;

show slave  status\G;

2  測試數據 (在master服務下執行.)

   2.1 建立數據庫

mysql> create table tal(text text);
Query OK, 0 rows affected (0.14 sec)

  2.2  插入數據

mysql> insert into  tal values("zhangchao");
Query OK, 1 row affected (0.09 sec)

2.3 強制刷新日誌文件

mysql> flush logs;
Query OK, 0 rows affected (0.24 sec)

2.4 驗證結果(在slave服務下)

mysql> select * from tal;
+-----------------+
| text            |
+-----------------+
| zhangchao       |
+-----------------+

 

容易出錯的地方 :

一  在鏈接 master 和slave的環節中,

master_host 實際生產環境中配置的是一個外網環境的ip地址,爲了測試,我就用本地的了,

有些書上寫的是 master_host  = master_id ;   這樣的寫法, 致使的結果是 在slave服務器上提示錯誤,

在show slave status ,提示沒法正常鏈接遠程主機,  這個是按照課本實際時出現的錯誤,

二  在配置環節中,

log-bin 和 log-bin-index 建議是手寫一個, 若是是系統分配的會是主機名稱, 若是系統環境有所改動,

那麼複製時,slave就會找不到相應的日誌文件.

相關文章
相關標籤/搜索