keepalived 构建主备mysql
Mysql主主安裝配置:
安裝前確認:版本號、校驗碼(md5sum)、端口號,安裝路徑
安裝依賴:
yum install gcc gcc-c++ -y
yum install cmake -y
yum install ncurses-devel libtool -y
yum install bison -y
創建mysql需要的文件夾:
mkdir /usr/local/mysql/{etc,logs,data}
mkdir /usr/local/mysql/logs/{bin-log,relay-log,slow-log,error-log}
chown mysql:mysql /usr/local/mysql
創建一個mysql的程序運行用戶:
sudo useradd –s /sbin/nologin mysql
編譯安裝:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql
make && make install
備注:如果編譯出錯,可以先find / -name CMakeCache.txt,執行刪除,然后再根據報錯排除錯誤,執行重新編譯
賦予文件夾權限:
chown –R mysql:mysql /usr/local/mysql
配置文件的配置:
cp support-files/my-innodb-heavy-4G.cnf /etc/my.cnf
啟動mysql: usr/local/mysql/basedir/bin/mysqld_safe --user=mysql
停止:/usr/local/mysql/basedir/bin/mysqladmin -uroot –p(禁止通過kill的方式停止進程)
重寫了配置文件后,啟動報錯:
查看錯誤日志排查錯誤/usr/local/mysql/logs/error-log/
查報錯,百度經驗需要重新初始化,初始化后解決問題
Mysql創建用戶修改權限:
set password for root=password(‘12345678’)
grant all privileges on . to ‘sas’@’%’ identified by ‘12345678’;
delete from mysql.user where password=””;
主root:密碼:12345678
從root:密碼:12345678
創建一個可供主從復制的數據庫用戶:
grant replication slave on . to 'slave'@'%' identified by '12345678';
查看二進制日志,做主主的復制:
show master status;
stop slave;
change master to master_host='192.168.102.26',master_user='slave',master_password= ‘12345678',master_log_file='binlog.000001',master_port=3306,master_log_pos=244;
start slave;
show slave status;
做成系統服務:
ln -s /usr/local/mysql/bin/ /usr/bin
ln -s /usr/local/mysql/lib/ /usr/lib
cp support-files/mysql.server /etc/init.d/mysqld -p
chmod 755 /etc/init.d/mysqld
chown mysql.mysql -R /usr/local/mysql
chkconfig mysqld on
安裝keepalived:
tar –xf keepalived-1.2.7.tar.gz
./configure --prefix=/usr/local/keepalived
make
make install
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir -pv /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
修改配置文件:
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { notification_email { root@linux.com } notification_email_from keepalived@localhost smtp_server mail.163.com smtp_connect_timeout 30 router_id MySQL-ha } vrrp_instance VI_1 { state BACKUP #兩臺配置此處均是BACKUP interface eth0 #網卡,可使用ifconfig查看virtual_router_id 51 priority 100 #優先級,另一臺改為90 advert_int 1 nopreempt #不搶占,只在優先級高的機器上設置即可,優先級低的機器不設置 authentication { auth_type PASS auth_pass keepalivedpass } virtual_ipaddress { 192.168.1.200 #虛擬ip} } virtual_server 192.168.1.200 3306 { delay_loop 2 #每個2秒檢查一次real_server狀態 lb_algo wrr #LVS算法 lb_kind DR #LVS模式 persistence_timeout 60 #會話保持時間 protocol TCP real_server 192.168.1.104 3306 { #真實ipweight 3 notify_down /etc/keepalived/check_keepalived #檢測到服務down后執行的腳本 TCP_CHECK { connect_timeout 10 #連接超時時間 nb_get_retry 3 #重連次數 delay_before_retry 3 #重連間隔時間 connect_port 3306 #健康檢查端口 } }}編輯服務down后執行的腳本:
vim /etc/keepalived/check_keepalived
啟動keepalived:
service keepalived restart
查詢VIP:
Ip addr
防火墻放開vrrp協議
防火墻開放
#iptables?-I?INPUT?-i?eth0?-d?224.0.0.0/8?-p?vrrp?-j?ACCEPT
#iptables?-I?OUTPUT?-o?eth0?–d 224.0.0.0/8?-p?vrrp?-j?ACCEPT
iptables -A INPUT -i eth0 -p vrrp -s 192.168.1.107 -j ACCEPT (對方ip地址)
或
iptables -A INPUT -p vrrp -j ACCEPT
驗證:
1、在主庫執行增刪改操作,在從庫觀察狀態是否同步
2、在從庫執行增刪改操作,在主庫觀察狀態是否同步
3、停主的keepalived,查看從的ip,是否綁定成功
問題總結:
1、權限問題:
現象:初始化沒有報成功,沒有錯誤日志
分析:可能是由于無法寫入而造成的異常
方案:檢查用戶權限、文件夾權限(包括一級目錄的權限)
2、同步失敗:
現象:查看從狀態,顯示的是ok
分析:可能是由于初始同步有問題,檢查兩庫的狀態
方案:重新同步主從數據庫,若還是無法同步,可能是由于tar包損壞,查看MD5值,重新下載安裝
3、5.5和5.6區別:
兩個版本設置字符集不同,5.6版本增加了uuid的概念
4、keepalived綁定VIP失敗:
方案:檢查配置文件的問題
1)是否有多余的部分
2)檢查防火墻的配置,放行vrrp協議
3)將檢查健康狀況腳本放在郵件配置下方
轉載于:https://blog.51cto.com/11962757/2084073
總結
以上是生活随笔為你收集整理的keepalived 构建主备mysql的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 俄科学家团队研发制备ALON新法,推进该
- 下一篇: 工作日志——k8s pvpvc