標籤:style blog http color ar sp for 檔案 資料
1 背景
sql1 主 sql2 備
nfs
依賴於nfs,nfs掛則都掛了
heartbeat + nfs 實現mysql的高可用性
2 實驗
web1(mysql主) 192.168.204.5
web2(mysql備) 192.168.204.6
nfs 192.168.204.7
VIP 192.168.204.8
步驟
如上篇一樣利用heartbeta 構建好 高可用的環境,這裡不做介紹
安裝mysql 方法及配置nfs
1 nfs上面
[[email protected] .ssh]# yum install -y nfs-utils 安裝nfs
[[email protected] .ssh]# id mysql
uid=500(mysql) gid=500 組=500 確保三者的mysql 使用者和組一致,不一致請修改至一致
[[email protected] .ssh]# mkdir -p /data/nfs/mysql 建立mysql的共用目錄
[[email protected] .ssh]# chown -R mysql:mysql /data/nfs/mysql/ 設定屬性
[[email protected] .ssh]# echo "/data/nfs/mysql 192.168.204.5(rw,no_root_squash) 192.168.204.6(rw,no_root_squash)" >> /etc/exports
匯出共用給 ..注意許可權一定是可讀寫且no_root_squash
[[email protected] .ssh]# /etc/init.d/nfs start 啟動nfs
[[email protected] .ssh]# showmount -e 192.168.204.7 查看是否匯出正確
2 mysql(主)的配置
掛載nfs
[[email protected] local]# id mysql
uid=500(mysql) gid=500(mysql) 組=500(mysql)
[[email protected] local]# mkdir -pv /data/mysql
[[email protected] local]# chown -R mysql.mysql /data/mysql/
[[email protected] local]# mount -t nfs 192.168.204.7:/data/nfs/mysql /data/mysql
準備好 二進位編譯的 mysql包
mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
解壓並初始化
cd /usr/local/src
tar xvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
cd ..
ln -s src/mysql-5.6.21-linux-glibc2.5-x86_64 mysql
[[email protected] local]# chown -R mysql.root mysql/
cd mysql
[[email protected] mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
複製開機檔案和 設定檔
[[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysql
[[email protected] mysql]# cp support-files/my-default.cnf /etc/my.cnf
修改開機檔案/etc/init.d/mysqld
basedir=/usr/local/mysql 程式放置路徑
datadir=/data/mysql 資料檔案放置的路徑
啟動mysql
[[email protected] mysql]# /etc/init.d/mysqld start
mysql 登入
/usr/local/mysql/bin/mysql
mysql> create database testdb;
測試是否能成功
3 msyql 備 操作 與主的區別在於 此處不需要在初始化了,利用主初始化好的,進行運行mysql
掛載nfs
[[email protected] local]# id mysql
uid=500(mysql) gid=500(mysql) 組=500(mysql)
[[email protected] local]# mkdir -pv /data/mysql
[[email protected] local]# chown -R mysql.mysql /data/mysql/
[[email protected] local]# mount -t nfs 192.168.204.7:/data/nfs/mysql /data/mysql
準備好 二進位編譯的 mysql包
mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
解壓
cd /usr/local/src
tar xvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
cd ..
ln -s src/mysql-5.6.21-linux-glibc2.5-x86_64 mysql
[[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysql
[[email protected] mysql]# cp support-files/my-default.cnf /etc/my.cnf
修改開機檔案/etc/init.d/mysqld
basedir=/usr/local/mysql 程式放置路徑
datadir=/data/mysql 資料檔案放置的路徑
啟動mysql
[[email protected] mysql]# /etc/init.d/mysqld start (啟動前 關閉 主mysql上的mysqld 因為只能同時存在一個)
mysql 登入
/usr/local/mysql/bin/mysql
mysql> create database testdb2;
測試是否能成功
4 測試高可用
heartbeat.x86_64
修改 ha.cf haresources
修改 ha.cf 重要的兩條
node web1
node web2
修改 haresources
web1 192.168.204.8/24/eth0 mysqld
[[email protected] ha.d]# scp ha.cf haresources authkeys web2:/etc/ha.d/
啟動heartbeat,前者一定不能手動啟動mysqld
[[email protected] ha.d]# /etc/init.d/heartbeat status
[[email protected] ha.d]# ssh web2 ‘/etc/init.d/heartbeat start‘
測試
[[email protected] ha.d]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:db:d8:64 brd ff:ff:ff:ff:ff:ff
inet 192.168.204.5/24 brd 192.168.204.255 scope global eth0
inet 192.168.204.8/24 brd 192.168.204.255 scope global secondary eth0
[[email protected] ha.d]# /etc/init.d/mysqld status
MySQL running (4511)[確定]
測試轉移
[[email protected] ha.d]# /usr/share/heartbeat/hb_standby
Going standby [all].
查看web2上mysql 是否啟動
[[email protected] ha.d]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:45:16:6b brd ff:ff:ff:ff:ff:ff
inet 192.168.204.6/24 brd 192.168.204.255 scope global eth0
inet 192.168.204.8/24 brd 192.168.204.255 scope global secondary eth0
inet6 fe80::20c:29ff:fe45:166b/64 scope link
valid_lft forever preferred_lft forever
[[email protected] ha.d]# /etc/init.d/mysqld status
SUCCESS! MySQL running (3798)
mysql高可用解決方案之---nfs