CentOS6.4搭建mysql高可用架構MHA

來源:互聯網
上載者:User

標籤:centos6.4搭建mysql高可用架構mha

一、環境

系統      CentOS 6.4x64迷你安裝

manager     192.168.3.51

master     192.168.3.52 (備用master)

slave1     192.168.3.53

slave2     192.168.3.54

二、配置hosts本地解析

4台機都配置相同的hosts解析,內容如下

[[email protected] ~]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.3.51manager192.168.3.52master192.168.3.53slave1192.168.3.54slave2

三、配置四台主機之間ssh免秘鑰登陸

manager:

[[email protected] ~]# ssh-keygen[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected][[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected][[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

master:

[[email protected] ~]# ssh-keygen[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected][[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected][[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

slave1:

[[email protected] ~]# ssh-keygen[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected][[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected][[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

slave2:

[[email protected] ~]# ssh-keygen[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected][[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected][[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

四、安裝mysql

在master,slave1,slave2上安裝mysql服務。這裡安裝的是mysql-5.5.37.tar.gz,使用指令碼進行安裝

指令碼內容如下

[[email protected] ~]# cat mysql_install.sh #!/bin/bash DATADIR=‘/data/mysql/data‘VERSION=‘mysql-5.5.37‘export LANG=zh_CN.UTF-8 #Source function library.. /etc/init.d/functions #camke install mysql5.5.Xinstall_mysql(){        read -p "please input a password for root: " PASSWD        if [ ! -d $DATADIR ];then                mkdir -p $DATADIR        fi        yum install cmake make gcc-c++ bison-devel ncurses-devel -y        id mysql &>/dev/null        if [ $? -ne 0 ];then                useradd mysql -s /sbin/nologin -M        fi        #useradd mysql -s /sbin/nologin -M        #change datadir owner to mysql        chown -R mysql.mysql $DATADIR        cd        #wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.38.tar.gz        tar xf $VERSION.tar.gz        cd $VERSION        cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/$VERSION         -DMYSQL_DATADIR=$DATADIR         -DMYSQL_UNIX_ADDR=$DATADIR/mysql.sock         -DDEFAULT_CHARSET=utf8         -DDEFAULT_COLLATION=utf8_general_ci         -DENABLED_LOCAL_INFILE=ON         -DWITH_INNOBASE_STORAGE_ENGINE=1         -DWITH_FEDERATED_STORAGE_ENGINE=1         -DWITH_BLACKHOLE_STORAGE_ENGINE=1         -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1         -DWITHOUT_PARTITION_STORAGE_ENGINE=1        make && make install        if [ $? -ne 0 ];then                action "install mysql is failed!"  /bin/false                exit $?        fi        sleep 2        #link        ln -s /usr/local/$VERSION/ /usr/local/mysql        ln -s /usr/local/mysql/bin/* /usr/bin/        #copy config and start file        /bin/cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf        cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld        chmod 700 /etc/init.d/mysqld        #init mysql        /usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql --datadir=$DATADIR --user=mysql        if [ $? -ne 0 ];then                action "install mysql is failed!"  /bin/false                exit $?        fi        #check mysql        /etc/init.d/mysqld start        if [ $? -ne 0 ];then                action "mysql start is failed!"  /bin/false                exit $?        fi        chkconfig --add mysqld        chkconfig mysqld on        /usr/local/mysql/bin/mysql -e "update mysql.user set password=password(‘$PASSWD‘) where host=‘localhost‘ and user=‘root‘;"        /usr/local/mysql/bin/mysql -e "update mysql.user set password=password(‘$PASSWD‘) where host=‘127.0.0.1‘ and user=‘root‘;"        /usr/local/mysql/bin/mysql -e "delete from mysql.user where password=‘‘;"        /usr/local/mysql/bin/mysql -e "flush privileges;"        #/usr/local/mysql/bin/mysql -e "select version();" >/dev/null 2>&1        if [ $? -eq 0 ];then                echo "+---------------------------+"                echo "+------mysql安裝完成--------+"                echo "+---------------------------+"        fi        #/etc/init.d/mysqld stop} install_mysql

建立master,slave1,slave2之間的主從複製

修改3台機的server-id,確保是唯一的

#master的server-id[[email protected] ~]# grep server-id /etc/my.cnf server-id= 1#slave1的server-id[[email protected] ~]# grep server-id /etc/my.cnf server-id= 53#slave2的server-id[[email protected] ~]# grep server-id /etc/my.cnf server-id= 53

在master,slave1上配置主從同步用的帳號。slave1是備用的master,這個也需要進行授權。

#建立主從同步用的帳號


本文出自 “ly36843營運” 部落格,請務必保留此出處http://ly36843.blog.51cto.com/3120113/1671718

CentOS6.4搭建mysql高可用架構MHA

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.