天天看點

mysql5.5 主從配置

Mysql的主從複制至少是需要兩個Mysql的服務,當然Mysql的服務是可以分布在不同的伺服器上,也可以在一台伺服器上啟動多個服務。

(1)首先確定主從伺服器上的Mysql版本相同

(2)在主伺服器上,設定一個從資料庫的賬戶,使用REPLICATION SLAVE賦予權限,如:

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'172.16.10.143' IDENTIFIED BY '123456';

Query OK, 0 rows affected (0.13 sec)

(3)修改主資料庫的配置檔案my.cnf,開啟BINLOG,并設定server-id的值,修改之後必須重新開機Mysql服務

(4)之後可以得到主伺服器目前二進[mysqld]

log-bin = /home/mysql/log/mysql-bin.log

server-id=1

制日志名和偏移量,這個操作的目的是為了在從資料庫啟動後,從這個點開始進行資料的恢複

mysql> show master status\G;

*************************** 1. row ***************************

File: mysql-bin.000003

Position: 243

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

(5)好了,現在可以停止主資料的的更新操作,并生成主資料庫的備份,我們可以通過mysqldump到處資料到從資料庫,當然了,你也可以直接用cp指令将資料檔案複制到從資料庫去

注意在導出資料之前先對主資料庫進行READ LOCK,以保證資料的一緻性

mysql> flush tables with read lock;

Query OK, 0 rows affected (0.19 sec)

之後是mysqldump

mysqldump -h127.0.0.1 -p3306 -uroot -p test > /home/chenyz/test.sql

最好在主資料庫備份完畢,恢複寫操作

mysql> unlock tables;

Query OK, 0 rows affected (0.28 sec)

(6)将剛才主資料備份的test.sql複制到從資料庫,進行導入

(7)接着修改從資料庫的my.cnf,增加server-id參數,指定複制使用的使用者,主資料庫伺服器的ip,端口以及開始執行複制日志的檔案和位置

server-id       = 2

log-bin=mysql-bin  

replicate-do-db=test   

replicate-do-db=bbs

mysql>stop slave;

mysql>researt slave;

mysql>change master to master_host = 'VMS00782'

,master_user = 'replication',

master_password = 'ReplPass@123456',

master_port = 3306,

master_log_file = 'VMS00782-bin.000001',

master_log_pos = 120;

mysql>start slave;

mysql>show slave status;

繼續閱讀