標籤:
思路:在主服務上建立2進位日誌,每產生語句或磁碟變化就寫進日誌,我們可以通過主伺服器設定一個帳號,
修改下my.cnf設定檔來讓從伺服器建立relaylog,這個時候主伺服器建立一個slave帳號,在從伺服器上
都過語句串連主伺服器,開啟複製功能實現主從複製。
/usr/libexec/mysqld --skip-grant-tables 檢測密碼許可權的取消(關閉mysql進入需要帳號)
mysql兩台伺服器建立主從複製配置過程:
本人虛擬機器下有兩台linux,ip為199,200
1:200做從伺服器
2:199做為主伺服器
3:保證主從3306連接埠互連
4:配置主伺服器開啟binlog
編輯my.cnf
#給伺服器起一個唯一的id
server-id=199
#binary log 開啟二進位日誌
log-bin=mysql-bin
#statement row mixed
#指定日誌格式
binlog-format=mixed/row/statement
說明:主伺服器的日誌格式有statement,row,mixed3種,其中mixed是指前兩種的混合
row:一般隻影響一行的用row比較好
statement:語句時針對資料庫每一行的,反映在磁碟上的很多row都發生了變化,此處適合就statement格式
mixed:2種形式都支援的一種混合格式
重啟mysql
show master status;//查看下master是否已經充當了主伺服器
5:配置從伺服器
#relay log 從伺服器中繼日誌
relay-log=mysql-relay
伺服器id
server-id=200
#指定唯讀
read-only=1
重啟伺服器
6:在主服務上建立一個slave帳號
grant repliaction slave,replication client on *.*
to ‘repl‘@‘192.168.%.%‘ identified by ‘repl‘;
//重新整理mysql許可權
flush privileges;
7:在從伺服器通過語句指定要複製的伺服器(注意:可以一主多從,不可以一從多主)
->change master to
->master_host=‘192.168.0.199‘,
->master_user=‘repl‘,
->master_password=‘repl‘,
->master_log_file=‘mysql-bin.000003‘,
->master_log_pos=278;
?
8:在從伺服器上啟動複製
->start slave;
->show slave status;查看slave的狀態
9:可以在主伺服器上操作資料庫看從伺服器資料庫是否有複製成功
常用語句
show master status;查看master的狀態,尤其是當前的日誌及位置
show slave status;查看slave的狀態
reset slave;重設slave狀態
start slave;啟動slave狀態(開始監聽master的變化)
stop slave;暫停slave狀態
mysql主從複製配置