作業系統:CentOS 5.8
MySQL版本:5.5.x
原來狀況:資料庫在一台機器上,已經有一些生產資料
目標:主主複製。兩台資料庫伺服器設定成主主複製方式,即對任何一台的更改都會自動同步到另外一台。
第一台:ip地址為 xxx.xxx.xxx.156 主機名稱 s156
第二台:ip地址為 xxx.xxx.xxx.170 主機名稱 s170
註:本文中的ip地址均採用 xxx. 形式,運用時根據實際情況修改。
操作步驟一:停止應用運行
在修改mysql配置之前,應該停止與資料庫有關的進程(程式),比如:
1. tomcat或其他Web應用程式容器
使用 service tomcat stop 停止
或者進入 tomcat/bin 執行 ./shutdown.sh)
2. crontab 裡面設定的某些與資料庫有關的定時任務。
比如:那些檢測tomcat是否啟動的定時任務。
可以先用 crontab -e 開啟,把相應項注釋掉(在前面加#號)。
3. 其他與資料庫有關的進程。
操作步驟二:檢查主機名稱
什麼情況下需要修改主機名稱?
如果發現shell命令列提示符是
[root@localhost ~]#
或者用hostname命令得到主機名稱是localhost
[root@localhost ~]# hostname
localhost
為什麼需要確認主機名稱是否正確?
1. 因為有些時候,安裝系統的人比較懶,沒有在安裝時設定主機名稱;
2. mysql運行時組建記錄檔檔案需要用到主機名稱,尤其是配置成複製(replication)後;
3. 如果在配置了複製之後再進行修改主機名稱,會造成mysql執行錯誤,這是我曾經碰到過的情況。
如果不需要修改主機名稱,跳到下一個步驟。
注意:需要對兩台伺服器檢查和修改。
修改主機名稱的步驟:
1. 停止與主機名稱有關係的程式或服務,比如mysql(它產生的記錄檔名中包含主機名稱)
service mysql stop
2. 使用hostname命令修改主機名稱(假定新主機名稱為newname)
hostname newname
比如:hostname s156
3. 在/etc/hosts檔案中配置主機名稱的解析(假定ip地址記為ip,主機名稱newname,網域名稱為yourdomain.com)
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
ip newname.yourdomain.com newname
比如:xxx.156 www.bkjia.com s156
4. 在/etc/sysconfig/network中修改HOSTNAME=newname
比如:HOSTNAME=s156
5. 最好重啟機器,如果不允許的話,重新登入也行
重啟使用 reboot 命令
重新登入使用 exit 命令
6. 看一下命令列提示符和hostname是否正確
[root@s156 ~]# hostname
s156
7. 重新啟動第一步中停止的程式或服務,比如mysql
service mysql start