若是主從配置以前安裝了雲平臺,請中止雲平臺後在進行mysql主從配置。mysql
一、登陸master數據庫,檢查數據庫端口防火牆設置,容許遠程客戶鏈接,若是沒有,執行如下操做。 執行命令:iptables -I INPUT -p tcp --dport 3306 -j ACCEPT /etc/init.d/iptables save 注:參照具體操做系統進行配置 二、編輯master數據庫上的/etc/my.cnf,並將如下語句添加至[mysql]小節datadir語句下的區域 log_bin=mysql-bin server_id=1 三、重起master數據庫mysql #service mysqld restart 四、在master數據庫上建立一個replication帳戶並給予權限。咱們將使用「cloud-repl」用戶,密碼「password」。這裏假定master數據庫和slave數據庫運行在10.117.66.0/25網絡。 mysql>create user 'cloud-repl'@'10.117.26.%' identified by 'password';(此處寫實際主數據庫ip) 五、mysql> grant replication slave on *.* to 'cloud-repl'@'10.117.66.%' identified by 'password'; (此處從服務器ip) mysql> flush privileges; mysql> flush tables with read lock; 六、保持當前shell下MySQL 會話的運行 七、在新的shell啓動第二個MySQL 會話 八、獲取數據庫的當前position mysql>show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 412 | | | +------------------+----------+--------------+------------------+ 九、記下實例返回的File和position。 十、壓縮master數據庫的數據文件 #tar zcf /tmpdatabak.tgz /var/lib/mysql 十一、登陸slave數據庫所在的服務器,安裝mysql,版本要求跟master數據庫一致。 注:安裝mysql,須要按照elaster的方式安裝 十二、中止slave數據庫 #service mysqld stop 1三、拷貝master數據庫的tmpdatabak.tgz到slave數據庫的根目錄/,在主數據庫操做複製命名以下: scp /tmpdatabak.tgz root@10.110.122.202:/ 解壓到目錄/var/lib/mysql #cd / #tar -zxvf tmpdatabak.tgz 1四、檢查slave數據庫端口防火牆設置,容許遠程客戶鏈接,若是沒有,執行如下操做。 iptables -I INPUT -p tcp --dport 3306 -j ACCEPT /etc/init.d/iptables save 注:參照具體操做系統進行配置 1五、編輯slave數據庫上的my.cnf,並添加以下語句於[mysql]小節的datadir語句下 server_id=2 1六、重啓slave數據庫MySQL /etc/init.d/mysqld start 1七、指示slave數據庫鏈接master數據庫並進行復制。 使用以前步驟裏已經使用的值替換IP地址、密碼、log file和position。在slave執行以下操做 mysql>change master to master_host='10.117.66.137', master_user='cloud-repl', master_password='password', master_log_file='mysql-bin.000001', master_log_pos=412; 1八、啓動slave數據庫上的replication mysql> start slave; 1九、登陸到master數據庫釋放master數據庫庫的lock(能夠等slave數據庫準備完成再解鎖) mysql> unlock tables; 20、測試master數據庫和slave數據庫配置是否正常工做,檢查一下操做後,看master數據庫和slave數據庫是否一致: 增長表、刪除表 增長記錄、刪除記錄、修改記錄 master數據庫重起後,工做是否正常 slave數據庫重起後,工做是否正常 命令查看同步狀態 mysql>show slave status; mysql>show slave status \G; 若是第一遍失敗,第二遍操做注意事項 一、在slave節點執行 mysql> show slave status; mysql> stop slave; 二、刪除從數據庫默認安裝目錄 /var/lib/mysql 下全部文件,以避免主數據庫文件覆蓋時與第一次未成功的文件合併 三、確保具備replication slave權限的用戶能夠從slave節點訪問master節點 例如master ip爲10.117.66.137 slave ip爲10.117.66.138則,在slave節點執行如下命令測試: mysql -h10.117.66.137 -ucloud-repl -ppassword