MySQL的主從同步是一個很成熟的架構,優點為:①在從服務器可以執行查詢工作(即我們常說的讀功能),降低主服 務器壓力;②在從主服務器進行備份,避免備份期間影響主服務器服務;③當主服務器出現問題時,可以切換到從服務器。所以我在項目部署和實施中經常會采用這 種方案;鑒於生產環境下的mysql的嚴謹性,我這裡推薦采用張宴兄的MySQL源碼編譯的方法.
第④版更新內容如下:
一、增加了mysql5.1.38的編譯安裝過程,安裝過程仍然采用張宴早期安裝mysql的方法,擯棄了用腳本控制的辦法;
二、從庫取主庫的方法仍然采用tar獲取,未采用mysqldump的原因是在實際配置中發現,此法失敗的機率比較大,故一直用tar取主數據庫的完整快照,這裡有網友不是太理解,這裡重點說明下;
三、mysql主從復制雖然配置比較簡單,但同時也是柄刃劍;因為如果在主庫上發生誤刪表現象,從庫也會發生;所以主表的單機備份一定要作,推薦同時也作FTP備份;
四、binlog日志一定要開啟,簽於生產環境的嚴謹性,此貼歡迎大家交流探討,找出其中的bug和錯誤,以免誤導新人;此貼我會持續關注和更新(撫琴煮酒)
數據庫目錄及其它
my.cnf配置文件 /usr/local/webserver/mysql/my.cnf
mysql數據庫位置 /usr/local/webserver/mysql/data/
主數據庫:192.168.4.191
從數據庫:192.168.4.192
操作系統:RHEL5.4 64位
服務器類型: HP 580G5,雙四核XeonE5520,32G內存,4塊300GSAS做成RAID10
mysql5.1.38源碼編譯過程如下:
- /usr/sbin/groupadd mysql
- /usr/sbin/useradd -g mysql mysql
- unzip mysql-5.1.38.zip
- cd mysql-5.1.38/
- ./configure --prefix=/usr/local/webserver/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase
- make && make install
- chmod +w /usr/local/webserver/mysql
- chown -R mysql:mysql /usr/local/webserver/mysql
- cp support-files/my-medium.cnf /usr/local/webserver/mysql/my.cnf
- #這部可依具體環境而定,壓力大的化可采用huge.cnf
- cd ../
①以mysql用戶帳號的身份建立數據表:
/usr/local/webserver/mysql/bin/mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/usr/local/webserver/mysql/data --user=mysql
②啟動MySQL(最後的&表示在後台運行)
/bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/usr/local/webserver/mysql/my.cnf &