MySQL服務器的主從配置,本來是一件很簡單的事情,無奈不是從零開始,總是在別人已經安裝好的mysql服務器之上 ,這就會牽扯到,mysql的版本,啟動文件,等一些問題。
http://www.cnblogs.com/roucheng/p/phpmysql.html
不過沒關系,先問清楚兩點
1、mysql配置文件my.cnf的位置
2、如何啟動、停止mysql,找好啟動文件
假設有兩台機器,已經安裝好了mysql(盡量同版本,且兩台機器同一網絡,可以ping通)
有朋友說:“從服務器,不能低於主服務器的版本”,不過我是低於的,沒有出現問題。
主機A: 192.168.1.100
從機B:192.168.1.101
可以有多台從機
1、先登錄主機 A
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘backup’@’192.168.1.101‘ IDENTIFIED BY ‘123456’;
賦予從機權限,有多台叢機,就執行多次
2、 打開主機A的my.cnf,輸入
server-id = 1 #主機標示,整數
log_bin = /var/log/mysql/mysql-bin.log #確保此文件可寫
read-only =0 #主機,讀寫都可以
binlog-do-db =test #需要備份數據,多個寫多行
binlog-ignore-db=mysql #不需要備份的數據庫,多個寫多行
3、打開從機B的my.cnf,輸入
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
master-host =192.168.1.100
master-user =backup
master-pass =123456
master-port =3306
master-connect-retry=60 #如果從服務器發現主服務器斷掉,重新連接的時間差(秒)
replicate-do-db =test #只復制某個庫
replicate-ignore-db=mysql #不復制某個庫
4、同步數據庫
有多種方法,我說最笨的一種,先mysqldump導出主機A的數據test為 test.sql
然後在,從機B上建立數據庫test,mysql導入 test.sql到test庫中
5、先重啟主機A的mysql,再重啟從機B的mysql
6、驗證
在主機A中,mysql>show master statusG;
在從機B中,mysql>show slave statusG;
能看到大致這些內容
File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
可以在主機A中,做一些INSERT, UPDATE, DELETE 操作,看看主機B中,是否已經被修改
http://www.cnblogs.com/roucheng/p/mysql.html
利用二進制備份
在my.ini中加入:
[mysqld]
log-bin=shenghua_binlog
show master status; //查看bin 名稱 // master 主服務器
show binlog events;//查看binlog 插入的數據
這個他是二進制數據。
mysqlbinlog D:wampinmysqlmysql5.0.51bdata_binglog.000001 > D:hhy.sql
主從
server-id = 1
log-bin = shenghua_binglog
#需要 備份的數據庫
binlog-do-db = hhy
#不需 要備份的數據庫
#binlog-ignore-db = **
從服務器上設置
server-id=2 #(配置多個從服務器時依次設置id號)
master-host= 192.168.0.1 #主服務器
master-user=shenghua #主服務器授權的用戶名
master-password=hhy #主服務器授權的密碼
master-port=3306 #主服務器的端口
replicate-do-db=hhy#需要備份的數據庫名,如果備份多個數據庫,重復設 置這個選項即可
重啟主從
slave start;
show slave status;
Slave_IO_Running 和 Slave_SQL_Running 兩列的值都為 “Yes”,這表明 Slave 的 I/O 和 SQL 線程都在正常運行
http://www.cnblogs.com/roucheng/p/mysqlfqb.html