程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL 5.5數據庫的主從復制

MySQL 5.5數據庫的主從復制

編輯:MySQL綜合教程

MySQL 5.5數據庫的主從復制   今天參照網上的資料進行mysql數據庫的主從復制研究,本來網上的資料已經很詳細,但是我在實踐中還是遇到了很多問題,下面就根據網上的資料以及我遇到的問題進行一個總結。           系統環境:Ubuntu12.04           軟件版本:mysql-server-5.5           主機IP:192.168.0.200           從機IP:192.168.0.201   操作:       1、主機操作:           1)、編輯mysql配置文件my.cnf                   [mysqld]                   server-id=1                   log-bin=mysql-bin           注:網上還有一些其他的配置,但是為了偷懶只配置了這兩個重要的,當然這兩個也是必須的。           2)、用root登陸mysql執行下面的代碼                   //建立一個用戶dean密碼123456,並賦予replication slave權限:                   mysql>grant replication slave on *.* to 'dean'@'192.189.0.201' identified by '123456';  www.2cto.com                     //讓權限立即生效                   mysql>flush privileges;                   //查詢二進制文件的文件名和狀態(後面要用)                   mysql>show master status \G                                   File:mysql-bin.000006                            Position:107                  Binlog_Do_DB:            Binlog_Ignore_DB:       2、從機操作:           1)、編輯myslq配置文件my.cnf:                   [mysqld]                   server-id=2   //只要和主機不同即可           2)、登陸mysql,輸入以下命令:                  a)、 mysql>change master to master_host='192.168.0.200',master_user='dean', \                                  master_password='123456',master_log_file='mysql-bin.000006',                                   master_log_pos=107;                   b)、mysql>start slave;                   c)、 mysql>show slave status \G           如果出現:Slave_IO_Running:Yes                           Slave_SQL_Running:Yes           那麼說明沒有問題了,就可以在主機上面建庫建表寫測試數據,然後在從機上查詢看有沒有數據。一般是沒有問題了。           但是如果是出現:                           Slave_IO_Running:Connecting                           Slave_SQL_Running:Yes            那麼就表示主從服務有問題了,我也就是遇到這個問題下面是我的解決方案:           1)、在從機上直接遠程登陸主機mysql服務器:               #mysql -udean -h 192.168.0.200 -p123456               如果被拒絕那麼就需要檢查主機的用戶dean的權限、防火牆等設置是否正確。(我的被拒絕了)           2)、檢查權限。               用root登入mysql 並選擇mysql庫                   mysql>use mysql;               查詢用戶的訪問  www.2cto.com                     mysql>select host,user from user;                  從查詢數據看沒有問題,有dean用戶 接受192.168.0.201的訪問           3)、防火牆設置                   將端口為3306 的訪問設為允許                       #sudo ufw allow 3306                   將ip為192.168.0 .201的訪問設為允許                       #sudo ufw allow 192.168.0.201                   查看狀態                         # sudo ufw status           設置完後還是從機還是不能直接遠程訪問主機           4)、查看端口監聽                       #netstat -anpy|grep 3306               發現當前的端口3306只在127.0.0.1監聽,找到問題所在。修改mysql配置文件my.cnf將裡面的bind-address=127.0.0.1注釋調,重新察看端口監聽發現監聽是0.0.0.0:3306,好了測試一下果真可以進行遠程訪問。           重新進行主機從機的操作,但是發現在從機中不能進行第2步a操作,執行下面命令                   mysql>stop slave;//關閉slave                   mysql>reset slave;//重置slave           繼續執行a操作並往下繼續操作。           最終完成了Mysql 數據庫的主從復制。               另:根據網上資料顯示,如果主機在搭建主從復制前已經有數據需要先在主機上加鎖:               mysql>flush tables with read lock;               然後打包數據目錄並拷貝到從機上,然後解鎖。
    作者 DeanJoson

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved