Mysql5.5主從復制配置

 

1.主庫編輯my.cnf:

[mysqld]

log-bin=NEW_NAME

server-id=1     #配一個唯一的ID編號,1至32。

#設置要進行或不要進行主從復制的數據庫名,同時也要在Slave 上設定。

binlog-do-db=數據庫名1

binlog-do-db=數據庫名2

binlog-ignore-db=數據庫名1

binlog-ignore-db=數據庫名2

mysql> grant replication slave on *.* to slaveuser@192.168.1.101 identified by '123456' ;

mysql> flush privileges;

mysql> show master status;

+——————+———-+————–+——————+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+——————+———-+————–+——————+

| mysql-bin.000008 |      337 |              |                  |

+——————+———-+————–+——————+

記錄下二進制日志文件名和位置

 

2.從庫編輯my.cnf,把server-id改成不和主機相同的數字。

如果隻想同步指定的數據庫,可以添加  replicate-do-db = yourdatabase,

同步幾個就復制幾個,把數據庫名改瞭就好。

[mysqld]

server-id=2     #唯一

#設置要進行或不要進行主從復制的數據庫名,同時也要在Master 上設定。

replicate-do-db=數據庫名1

replicate-do-db=數據庫名2

replicate-ignore-db=數據庫名1

replicate-ignore-db=數據庫名2

 

mysql> change master to master_host='192.168.1.100',master_user='slaveuser',master_password='123456', master_log_file='mysql-bin.000008',master_log_pos=337;

mysql> start slave;

mysql> show slave status\G;

如果出現:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

以上兩項都為Yes,那說明沒問題瞭。如果指定瞭個別的數據庫,還可以看到

註:如果出現Slave_SQL_Running:connecting的現象,首先在從庫命令行下輸入:

#mysql -uslaveuser -h 192.168.1.100 -p123456

看是否能登入mysql,如果是拒絕等提示,那要查看主機上的第從庫授權操作是否用戶的權限等設置正確。

 

如果開始的環境不是主從架構,跑瞭一段時間已經有瞭數據,這時候要先在主機上加鎖:flush tables with read lock;

打包主機的數據目錄:#tar zcf  /tmpdatabak.tgz /opt/data,拷貝這個壓縮包到從機,解壓後,做主從的配置。

然後解鎖:unlock tables;

 

作者 iloveyin

發佈留言