MySQL MHA配置詳解

來源:互聯網
上載者:User

MySQL MHA配置詳解

    MySQL環境:

    master:192.168.202.129:3306

    slave:192.168.202.129:3307,192.168.202.129:3307,192.168.202.130:3306,192.168.202.130:3307,192.168.202.130:3308

    MariaDB-10.0.13

    MHA環境:

    manager:192.168.202.129

    node:192.168.202.130(3306連接埠監聽的執行個體作為備用主庫),192.168.202.129

    :http://code.google.com/p/mysql-master-ha/ (這個需要FQ),

也可以在幫客之家的資來源站點裡下載:

------------------------------------------分割線------------------------------------------

免費在 http://linux.bkjia.com/

使用者名稱與密碼都是www.bkjia.com

具體下載目錄在 /2015年資料/2月/10日/MySQL MHA配置詳解/

下載方法見

------------------------------------------分割線------------------------------------------

    一 MySQL安裝準備:

    1 建立MySQL安裝目錄:mkdir -p /usr/local/mysql

    2 建立mysql使用者:

   

groupadd mysql
useradd -g mysql mysql

    3 下載依賴包:

   

yum  install make apr* autoconf automake curl curl-devel gcc gcc-c++ gtk+-devel zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat*  cpp glibc libgomp libstdc++-devel keyutils-libs-devel libsepol-devel libselinux-devel krb5-devel  libXpm* freetype freetype-devel freetype* fontconfig fontconfig-devel  libjpeg* libpng* php-common php-gd gettext gettext-devel ncurses* libtool* libxml2 libxml2-devel patch policycoreutils bison

    4 下載cmake:yum install cmake -y

    5 開始編譯:

   

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/home/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1

    6 結束之後,輸入下面的命令:make && make install

    上面的過程結束之後就安裝好了MySQL。下面是配置過程:

  二 編譯安裝MySQL:

  1 修改環境變數:vi /etc/profile,添加下面的語句:

 

export PATH=$PATH:/usr/local/mysql/bin

  2 source /etc/profile載入環境變數

  3 將/usr/local/mysql/support_files下的my-default.cnf複製到/etc下:cp /usr/local/mysql/support_files/my-default.cnf /etc/my.cnf,修改這個檔案加入下面的內容:

 

 

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /home/mysql/mydata/log/mysqld_multi.log


[mysqld1]
socket = /home/mysql/mydata/data1/socket/mysqld.sock
port = 3306
pid-file = /home/mysql/mydata/data1/mysqld.pid
datadir = /home/mysql/mydata/data1

log_bin=/home/mysql/mydata/data1/binlog/mysql-bin
server-id = 1

[mysqld2]
socket = /home/mysql/mydata/data2/socket/mysqld.sock
port = 3307
pid-file = /home/mysql/mydata/data2/mysqld.pid
datadir = /home/mysql/mydata/data2

log_bin=/home/mysql/mydata/data2/binlog/mysql-bin
server-id = 2
relay_log = /home/mysql/mydata/data2/relay_log/mysql-relay-bin
log_slave_updates = 1
read_only = 1

[mysqld3]
socket = /home/mysql/mydata/data3/socket/mysqld.sock
port = 3308
pid-file = /home/mysql/mydata/data3/mysqld.pid
datadir = /home/mysql/mydata/data3

log_bin=/home/mysql/mydata/data3/binlog/mysql-bin
server-id = 3
relay_log = /home/mysql/mydata/data3/relay_log/mysql-relay-bin
log_slave_updates = 1
read_only = 1

 

    上面的路徑都需要用mysql使用者建立,這裡不再贅述。

    4 下面就可以初始化資料庫了:

   

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/mydata/data1

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/mydata/data2

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/mydata/data3

    這樣就把一個伺服器上所有的資料庫都建立好了,在130伺服器上也是如法炮製,不過在修改my.cnf的時候要注意一點就是修改server-id,從4以後開始,不要和129伺服器的相同。

    下面就可以啟動資料庫了,命令很簡單:

   

mysqld_multi --defaults-extra-file=/etc/my.cnf start 1,2,3

    這就將三個資料庫啟動好了,可以用下面的語句檢查:

   

mysqld_multi --defaults-extra-file=/etc/my.cnf report

MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
MySQL server from group: mysqld3 is running

   

    三 主從配置

    1 主庫建立複製使用者:

   

在192.168.202.129上:
$mysql -uroot -P3306 -p127.0.0.1

grant replication slave, replication client on *.* to repl@'192.168.202.%' identified by 'repl'; -- 這裡限制在區域網路內


    2 從庫配置:

   

 

在192.168.202.129上:
$mysql -uroot -P3307 -p127.0.0.1
change master to master_host='192.168.202.129', MASTER_PORT=3306, master_user='repl', master_password='repl', master_log_file='mysql-bin.000001', master_log_pos=0;
start slave;


$mysql -uroot -P3308 -p127.0.0.1
change master to master_host='192.168.202.129', MASTER_PORT=3306, master_user='repl', master_password='repl', master_log_file='mysql-bin.000001', master_log_pos=0;
start slave;
在192.168.202.130上:
$mysql -uroot -P3306 -p127.0.0.1
change master to master_host='192.168.202.129', MASTER_PORT=3306, master_user='repl', master_password='repl', master_log_file='mysql-bin.000001', master_log_pos=0;
start slave;
$mysql -uroot -P3307 -p127.0.0.1
change master to master_host='192.168.202.129', MASTER_PORT=3306, master_user='repl', master_password='repl', master_log_file='mysql-bin.000001', master_log_pos=0;
start slave;
$mysql -uroot -P3308 -p127.0.0.1
change master to master_host='192.168.202.129', MASTER_PORT=3306, master_user='repl', master_password='repl', master_log_file='mysql-bin.000001', master_log_pos=0;
start slave;

 

    這樣子就配置結束了。

    3 配置好了以後主庫上會有slave過來的進程:

    mysql>show processlist;

    有幾個slave,這裡就會有多少個進程。

    4

# ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

相關文章

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.