當前位置: 首頁IT技術 → mysql數(shù)據(jù)庫同步配置詳解

mysql數(shù)據(jù)庫同步配置詳解

更多

網(wǎng)站最重要的數(shù)據(jù),如果數(shù)據(jù)異常而你又沒有做好備份那是很難恢復的,今天小編教你將兩臺服務器的mysql數(shù)據(jù)庫進行同步,這樣子我們如果我們網(wǎng)站出了問題,我們就可以用最快的速度進行切換,這樣子才能不影響用戶的訪問。

環(huán)境:兩臺機器,已經(jīng)安裝好了mysql(盡量版本相同,版本也可以不相同。兩臺機器在同一個網(wǎng)絡,可以互相ping通)

主機A(master):192.168.1.80 (ubuntu server 11.10 & mysql 5.5.17)
主機B(slave):192.168.1.81(centos 6.3 & mysql 5.1.61)
 

1: 在master上授權slave的復制賬戶和權限,使slave可以從主機A上去復制數(shù)據(jù)。

  1. mysql>grant all privileges on oa.* to admin@localhost  identified by '在這里定義密碼'

附:關于mysql授權的一些SQL語句的掌握。

  1. mysql>grant select,insert,update,delete on *.* admin@localhost identified by '密碼';  
  2. mysql>grant select,insert,update,delete on *.* admin@'192.168.1.%' identified by '密碼';  
  3.  
  4. mysql> revoke all privileges on *.* from admin@localhost;  ← 取消admin用戶對數(shù)據(jù)庫的操作權限  
  5. mysql>delete from mysql.user where user='admin' and host='localhost';  ← 刪除admin用戶  
  6. mysql> flush privileges;  ← 刷新,使以上操作生效 

2:添加iptabels規(guī)則,mysql的3306端口可以通過
# iptabels -A INPUT -m state --state NEW -m tcp -ptcp --dport 3306 -j ACCEPT
3:修改主機A的mysql配置文件my.cnf,并設置編碼為UTF-8.

  1. [mysqld]
  2. #注意:該部分server-id=Master_id必須為12321之間的正整數(shù)值。從服務器的ID必須與主服務器的ID不相同。 
  3. server-id =1
  4. #用戶slaver讀取的二進制日志文件。
  5. log-bin=msyql-bin
  6. #要復制的數(shù)據(jù)庫replication-do-db=oa
  7. #數(shù)據(jù)庫存放的目錄
  8. datadir=/var/lib/mysql  
  9. socket=/var/lib/mysql/mysql.sock  
  10. Default to using old password format for compatibility with mysql 3.x  
  11. # clients (those using the mysqlclient10 compatibility package).  
  12. old_passwords=1  ← 找到這一行,在這一行的下面添加新的規(guī)則,讓MySQL的默認編碼為UTF-8  
  13. default-character-set = utf8  ← 添加這一行  
  14. 然后在配置文件的文尾填加如下語句:  
  15. [mysql]  
  16. default-character-set = utf8

4:配置slave ,打開從機B的my.cnf。

  1. server-id           =2 

5:同步數(shù)據(jù)庫

主機A上master上面需要的同步的數(shù)據(jù)庫比較大時,先鎖定數(shù)據(jù)表,然后導出數(shù)據(jù)庫。再到主機B slave上導入數(shù)據(jù)庫。

  1. mysql> flush tables with read lock;  mysql> show master status;+------------------+----------+--------------+------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000583 |     6682 | oa19         |                  |+------------------+----------+--------------+------------------+1 row in set (0.00 sec)
  2. 在不停主庫的情況下備份數(shù)據(jù)庫,root@80:~# mysqldump-uroot -pxxxx -h127.0.0.1 --databases oa --master-data=1 > bak.sql

6:遠程復制到slave上mater關于oa的備份文件。

  1. [root@sample~]#scp /home/back/mysql_bak.$(date +%F).sql.gz root@192.168.1.81:/tmp/ 

7:到slave上面解壓并且導入數(shù)據(jù)庫。

  1. [root@sample~]#gzip -d  mysql_bak.$(date +%F).sql.gz  
  2. 在從服務器上導入數(shù)據(jù)  
  3. [root@sample~]#mysql>source /home/back/mysql_bak.$(date +%F).sql

8:手動同步slave并且開啟slave同步。  

mysql>change master to master_host='192.168.1.80',

  1. >master_user='admin',  
  2. >master_password='123456',  
  3. >master_log_file='mysql-bin.000583',  
  4. >master_log_pos=107;  
  5. mysql>start slave;  
  6. mysql>show slave status\G;  
  7. 注意:此處的master_log_pos=107或者master_port=3306處,千萬不要添加引號,負責會出現(xiàn)語法的錯誤。

 

熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)