mysql高可用解決方案之---nfs

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.