口水:第一次寫博客,歡迎大家來拍磚。
最近項目中用mysql主從復制主要是為了實現讀寫分離、數據庫備份、故障轉移的需要,采用的是一主一從,配置比較簡單。
自已在本機做測試
測試環境如下:
OS:win7
mysql: 安裝兩個版本的mysql ,一個是5.5.x(高版本做主) 一個是5.1.x.(從)
配置文件 win下my.ini linux下:my.conf
1. 配置主庫
#配置主從數據庫
server-id=1
#主從復制是通過二進制文件來進行,所以要開啟日志功能
log-bin=mysql-bin
#主機,讀寫都可以
read-only=0
#需要備份數據,多個寫多行
binlog-do-db=core
#不需要備份的數據庫,多個寫多行
binlog-ignore-db=test
binlog-ignore-db=mysql
2. 配置從庫
#主從配置
server-id=2
log-bin=mysql-bin
#主機地址
master-host=127.0.0.1
master-user=slave1
master-password=slave1
master-port=3309
#如果從服務器發現主服務器斷掉,重新連接的時間差(秒)
master-connect-retry=60
#只復制某個庫
replicate-do-db=core
#不復制某個庫
replicate-ignore-db=mysql
3. 設置權限
給主數據庫授予一個可以進行復制的用戶
GRANT replication slave ON *.* TO 'slave1'@'%' IDENTIFIED BY 'slave1';
4. 啟動從庫復制
mysql>slave start;
myslq>slave stop;
5. 查看復制狀態
主庫:mysql>show master status\G(注意,不用加分號
)
從庫:mysql>show slave status\G
從庫設置主庫信息
change master to
> master_host='master_ip',
> master_user='user',
> master_password='pwd',
> master_port=3307,
> master_log_file='mysql-bin.000020',
> master_log_pos=135617781;
6. 解決未同步的可能出現的問題
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1
出現過的問題:
a. character 的問題 是mysql client的問題,需要把客戶端的character設置和server 一樣
7. 如果出現復制錯誤,從服務器的錯誤日志(HOSTNAME.err)中也會出現錯誤消息。
以上配置測試通過,有問題歡迎一起來討論