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://pan.baidu.com/s/1pJ0VkSz

一 MySQL安装准备:

1 建立MySQL安装目录:mkdir -p /usr/local/mysql

2 建立mysql用户:

  1. groupadd mysql
  2. useradd -g mysql mysql

3 下载依赖包:

  1. 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 开始编译:

  1. 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,添加下面的语句:

  1. 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,修改这个文件加入下面的内容:

  1. [mysqld_multi]
  2. mysqld = /usr/local/mysql/bin/mysqld_safe
  3. mysqladmin = /usr/local/mysql/bin/mysqladmin
  4. log = /home/mysql/mydata/log/mysqld_multi.log
  5.  
  6. [mysqld1]
  7. socket = /home/mysql/mydata/data1/socket/mysqld.sock
  8. port = 3306
  9. pid-file = /home/mysql/mydata/data1/mysqld.pid
  10. datadir = /home/mysql/mydata/data1
  11.  
  12. log_bin=/home/mysql/mydata/data1/binlog/mysql-bin
  13. server-id = 1
  14.  
  15. [mysqld2]
  16. socket = /home/mysql/mydata/data2/socket/mysqld.sock
  17. port = 3307
  18. pid-file = /home/mysql/mydata/data2/mysqld.pid
  19. datadir = /home/mysql/mydata/data2
  20.  
  21. log_bin=/home/mysql/mydata/data2/binlog/mysql-bin
  22. server-id = 2
  23. relay_log = /home/mysql/mydata/data2/relay_log/mysql-relay-bin
  24. log_slave_updates = 1
  25. read_only = 1
  26.  
  27. [mysqld3]
  28. socket = /home/mysql/mydata/data3/socket/mysqld.sock
  29. port = 3308
  30. pid-file = /home/mysql/mydata/data3/mysqld.pid
  31. datadir = /home/mysql/mydata/data3
  32.  
  33. log_bin=/home/mysql/mydata/data3/binlog/mysql-bin
  34. server-id = 3
  35. relay_log = /home/mysql/mydata/data3/relay_log/mysql-relay-bin
  36. log_slave_updates = 1
  37. read_only = 1

上面的路径都需要用mysql用户建立,这里不再赘述。

4 下面就可以初始化数据库了:

  1. /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/mydata/data1
  2.  
  3. /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/mydata/data2
  4.  
  5. /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服务器的相同。

下面就可以启动数据库了,命令很简单:

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

这就将三个数据库启动好了,可以用下面的语句检查:

  1. mysqld_multi --defaults-extra-file=/etc/my.cnf report
  2.  
  3. MySQL server from group: mysqld1 is running
  4. MySQL server from group: mysqld2 is running
  5. MySQL server from group: mysqld3 is running

三 主从配置

1 主库建立复制用户:

  1. 192.168.202.129上:
    $mysql -uroot -P3306 -p127.0.0.1
  2.  
  3. grant replication slave, replication client on *.* to repl@'192.168.202.%' identified by 'repl'; -- 这里限制在局域网内

2 从库配置:

  1. 192.168.202.129上:
    $mysql -uroot -P3307 -p127.0.0.1
  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;
  1. $mysql -uroot -P3308 -p127.0.0.1
  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;
  1. start slave;
  1. 192.168.202.130上:
  1. $mysql -uroot -P3306 -p127.0.0.1
  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;
  1. start slave;
  1. $mysql -uroot -P3307 -p127.0.0.1
  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;
  1. start slave;
  1. $mysql -uroot -P3308 -p127.0.0.1
  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;
  1. start slave;

这样子就配置结束了。

3 配置好了以后主库上会有slave过来的进程:

mysql>show processlist;

有几个slave,这里就会有多少个进程。

4

  1. # ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
  2. # ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

三 MHA配置

1 依赖安装:

在node节点上,执行下面的命令:

  1. # yum install perl-DBD-MySQL

在manager节点上:

  1. # yum install perl-DBD-MySQL
  2. # yum install perl-Config-Tiny
  3. # yum install perl-Log-Dispatch
  4. # yum install perl-Parallel-ForkManager
    # yum install -y rrdtool perl-rrdtool rrdtool-devel perl-Params-Validate

2 rpm包安装:

manager节点:

  1. # rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm
  2. # rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

node节点:

  1. # rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

3 配置

  1. mkdir -p /etc/masterha/
    mkdir -p /var/log/masterha/app1/

将下面的内容写进/etc/masterha/app1.cnf:

  1. [server default]
  2. manager_workdir=/var/log/masterha/app1
  3. manager_log=/var/log/masterha/app1/manager.log
  4. user=admin
  5. password=admin
  6. ssh_user=root
  7. repl_user=repl
  8. repl_password=repl
  9. ping_interval=1
  10. shutdown_script=""
  11. master_ip_online_change_script=""
  12. report_script=""
  13.  
  14. [server1]
  15. hostname=192.168.126.129
  16. port=3306
  17. candidate_master=1
  18. master_binlog_dir="/home/mysql/mydata/data1/binlog"
  19.  
  20. [server2]
  21. hostname=192.168.126.130
  22. port=3306
  23. candidate_master=1
  24. master_binlog_dir="/home/mysql/mydata/data1/binlog"
  25.  
  26. [server3]
  27. hostname=192.168.126.130
  28. port=3307
  29.  
  30. [server4]
  31. hostname=192.168.126.130
  32. port=3308
  33.  
  34. [server5]
  35. hostname=192.168.126.129
  36. port=3307
  37.  
  38. [server6]
  39. hostname=192.168.126.129
  40. port=3308

4 配置ssh免秘钥:

  1. # ssh-keygen -t rsa
  2. # cd ~/.ssh
  3. # cat id_rsa.pub >> authorized_keys
  4. # chmod 600 authorized_keys

将id_rsa.pub的内容粘贴到另一台服务器的~/.ssh/authorized_keys里(保证两个机器互相信任)。

5 测试一下ssh:

  1. masterha_check_ssh --conf=/etc/masterha/app1.cnf

下面的结果出来就对了:

  1. Sat Oct 18 14:04:43 2014 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
  2. Sat Oct 18 14:04:43 2014 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
  3. Sat Oct 18 14:04:43 2014 - [info] Reading server configuration from /etc/masterha/app1.cnf..
  4. Sat Oct 18 14:04:43 2014 - [info] Starting SSH connection tests..
  5. Sat Oct 18 14:06:29 2014 - [debug]
  6. Sat Oct 18 14:04:46 2014 - [debug] Connecting via SSH from root@192.168.126.129(192.168.126.129:22) to root@192.168.126.129(192.168.126.129:22)..
  7. Sat Oct 18 14:05:07 2014 - [debug] ok.
  8. Sat Oct 18 14:05:07 2014 - [debug] Connecting via SSH from root@192.168.126.129(192.168.126.129:22) to root@192.168.126.130(192.168.126.130:22)..
  9. Sat Oct 18 14:05:28 2014 - [debug] ok.
  10. Sat Oct 18 14:05:28 2014 - [debug] Connecting via SSH from root@192.168.126.129(192.168.126.129:22) to root@192.168.126.130(192.168.126.130:22)..
  11. Sat Oct 18 14:05:49 2014 - [debug] ok.
  12. Sat Oct 18 14:05:49 2014 - [debug] Connecting via SSH from root@192.168.126.129(192.168.126.129:22) to root@192.168.126.130(192.168.126.130:22)..
  13. Sat Oct 18 14:06:10 2014 - [debug] ok.
  14. Sat Oct 18 14:06:10 2014 - [debug] Connecting via SSH from root@192.168.126.129(192.168.126.129:22) to root@192.168.126.129(192.168.126.129:22)..
  15. Sat Oct 18 14:06:29 2014 - [debug]
  16. Sat Oct 18 14:04:45 2014 - [debug] Connecting via SSH from root@192.168.126.130(192.168.126.130:22) to root@192.168.126.129(192.168.126.129:22)..
  17. Sat Oct 18 14:05:06 2014 - [debug] ok.
  18. Sat Oct 18 14:05:06 2014 - [debug] Connecting via SSH from root@192.168.126.130(192.168.126.130:22) to root@192.168.126.130(192.168.126.130:22)..
  19. Sat Oct 18 14:05:27 2014 - [debug] ok.
  20. Sat Oct 18 14:05:27 2014 - [debug] Connecting via SSH from root@192.168.126.130(192.168.126.130:22) to root@192.168.126.130(192.168.126.130:22)..
  21. Sat Oct 18 14:05:48 2014 - [debug] ok.
  22. Sat Oct 18 14:05:48 2014 - [debug] Connecting via SSH from root@192.168.126.130(192.168.126.130:22) to root@192.168.126.129(192.168.126.129:22)..
  23. Sat Oct 18 14:06:09 2014 - [debug] ok.
  24. Sat Oct 18 14:06:09 2014 - [debug] Connecting via SSH from root@192.168.126.130(192.168.126.130:22) to root@192.168.126.129(192.168.126.129:22)..
  25. Sat Oct 18 14:06:31 2014 - [info] All SSH connection tests passed successfully.

6 测试一下复制:

  1. masterha_check_repl --conf=/etc/masterha/app1.cnf
  1. Sat Oct 18 14:12:45 2014 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
  2. Sat Oct 18 14:12:45 2014 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
  3. Sat Oct 18 14:12:45 2014 - [info] Reading server configuration from /etc/masterha/app1.cnf..
  4. Sat Oct 18 14:12:45 2014 - [info] MHA::MasterMonitor version 0.56.
  5. Sat Oct 18 14:12:46 2014 - [info] GTID failover mode = 0
  6. Sat Oct 18 14:12:46 2014 - [info] Dead Servers:
  7. Sat Oct 18 14:12:46 2014 - [info] Alive Servers:
  8. Sat Oct 18 14:12:46 2014 - [info] 192.168.126.129(192.168.126.129:3306)
  9. Sat Oct 18 14:12:46 2014 - [info] 192.168.126.130(192.168.126.130:3306)
  10. Sat Oct 18 14:12:46 2014 - [info] 192.168.126.130(192.168.126.130:3307)
  11. Sat Oct 18 14:12:46 2014 - [info] 192.168.126.130(192.168.126.130:3308)
  12. Sat Oct 18 14:12:46 2014 - [info] 192.168.126.129(192.168.126.129:3307)
  13. Sat Oct 18 14:12:46 2014 - [info] 192.168.126.129(192.168.126.129:3308)
  14. Sat Oct 18 14:12:46 2014 - [info] Alive Slaves:
  15. Sat Oct 18 14:12:46 2014 - [info] 192.168.126.130(192.168.126.130:3306) Version=10.0.13-MariaDB-log (oldest major version between slaves) log-bin:enabled
  16. Sat Oct 18 14:12:46 2014 - [info] Replicating from 192.168.126.129(192.168.126.129:3306)
  17. Sat Oct 18 14:12:46 2014 - [info] Primary candidate for the new Master (candidate_master is set)
  18. Sat Oct 18 14:12:46 2014 - [info] 192.168.126.130(192.168.126.130:3307) Version=10.0.13-MariaDB-log (oldest major version between slaves) log-bin:enabled
  19. Sat Oct 18 14:12:46 2014 - [info] Replicating from 192.168.126.129(192.168.126.129:3306)
  20. Sat Oct 18 14:12:46 2014 - [info] 192.168.126.130(192.168.126.130:3308) Version=10.0.13-MariaDB-log (oldest major version between slaves) log-bin:enabled
  21. Sat Oct 18 14:12:46 2014 - [info] Replicating from 192.168.126.129(192.168.126.129:3306)
  22. Sat Oct 18 14:12:46 2014 - [info] 192.168.126.129(192.168.126.129:3307) Version=10.0.13-MariaDB-log (oldest major version between slaves) log-bin:enabled
  23. Sat Oct 18 14:12:46 2014 - [info] Replicating from 192.168.126.129(192.168.126.129:3306)
  24. Sat Oct 18 14:12:46 2014 - [info] 192.168.126.129(192.168.126.129:3308) Version=10.0.13-MariaDB-log (oldest major version between slaves) log-bin:enabled
  25. Sat Oct 18 14:12:46 2014 - [info] Replicating from 192.168.126.129(192.168.126.129:3306)
  26. Sat Oct 18 14:12:46 2014 - [info] Current Alive Master: 192.168.126.129(192.168.126.129:3306)
  27. Sat Oct 18 14:12:46 2014 - [info] Checking slave configurations..
  28. Sat Oct 18 14:12:46 2014 - [info] read_only=1 is not set on slave 192.168.126.130(192.168.126.130:3306).
  29. Sat Oct 18 14:12:46 2014 - [warning] relay_log_purge=0 is not set on slave 192.168.126.130(192.168.126.130:3306).
  30. Sat Oct 18 14:12:46 2014 - [warning] relay_log_purge=0 is not set on slave 192.168.126.130(192.168.126.130:3307).
  31. Sat Oct 18 14:12:46 2014 - [warning] relay_log_purge=0 is not set on slave 192.168.126.130(192.168.126.130:3308).
  32. Sat Oct 18 14:12:46 2014 - [warning] relay_log_purge=0 is not set on slave 192.168.126.129(192.168.126.129:3307).
  33. Sat Oct 18 14:12:46 2014 - [warning] relay_log_purge=0 is not set on slave 192.168.126.129(192.168.126.129:3308).
  34. Sat Oct 18 14:12:46 2014 - [info] Checking replication filtering settings..
  35. Sat Oct 18 14:12:46 2014 - [info] binlog_do_db= , binlog_ignore_db=
  36. Sat Oct 18 14:12:46 2014 - [info] Replication filtering check ok.
  37. Sat Oct 18 14:12:46 2014 - [info] GTID (with auto-pos) is not supported
  38. Sat Oct 18 14:12:46 2014 - [info] Checking MHA Node version..
  39. Sat Oct 18 14:13:40 2014 - [info] Version check ok.
  40. Sat Oct 18 14:13:40 2014 - [info] Checking SSH publickey authentication settings on the current master..
  41. Sat Oct 18 14:13:45 2014 - [warning] HealthCheck: Got timeout on checking SSH connection to 192.168.126.129! at /usr/share/perl5/vendor_perl/MHA/HealthCheck.pm line 342.
  42. Sat Oct 18 14:13:45 2014 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
  43. Sat Oct 18 14:13:45 2014 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='admin' --slave_host=192.168.126.130 --slave_ip=192.168.126.130 --slave_port=3306 --workdir=/var/tmp --target_version=10.0.13-MariaDB-log --manager_version=0.56 --relay_log_info=/home/mysql/mydata/data1/relay-log.info --relay_dir=/home/mysql/mydata/data1/ --slave_pass=xxx
  44. Sat Oct 18 14:13:45 2014 - [info] Connecting to root@192.168.126.130(192.168.126.130:22)..
  45. Checking slave recovery environment settings..
  46. Opening /home/mysql/mydata/data1/relay-log.info ... ok.
  47. Relay log found at /home/mysql/mydata/data1, up to mysqld-relay-bin.000002
  48. Temporary relay log file is /home/mysql/mydata/data1/mysqld-relay-bin.000002
  49. Testing mysql connection and privileges.. done.
  50. Testing mysqlbinlog output.. done.
  51. Cleaning up test file(s).. done.
  52. Sat Oct 18 14:13:56 2014 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='admin' --slave_host=192.168.126.130 --slave_ip=192.168.126.130 --slave_port=3307 --workdir=/var/tmp --target_version=10.0.13-MariaDB-log --manager_version=0.56 --relay_log_info=/home/mysql/mydata/data2/relay-log.info --relay_dir=/home/mysql/mydata/data2/ --slave_pass=xxx
  53. Sat Oct 18 14:13:56 2014 - [info] Connecting to root@192.168.126.130(192.168.126.130:22)..
  54. Checking slave recovery environment settings..
  55. Opening /home/mysql/mydata/data2/relay-log.info ... ok.
  56. Relay log found at /home/mysql/mydata/data2/relay_log, up to mysql-relay-bin.000002
  57. Temporary relay log file is /home/mysql/mydata/data2/relay_log/mysql-relay-bin.000002
  58. Testing mysql connection and privileges.. done.
  59. Testing mysqlbinlog output.. done.
  60. Cleaning up test file(s).. done.
  61. Sat Oct 18 14:14:21 2014 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='admin' --slave_host=192.168.126.130 --slave_ip=192.168.126.130 --slave_port=3308 --workdir=/var/tmp --target_version=10.0.13-MariaDB-log --manager_version=0.56 --relay_log_info=/home/mysql/mydata/data3/relay-log.info --relay_dir=/home/mysql/mydata/data3/ --slave_pass=xxx
  62. Sat Oct 18 14:14:21 2014 - [info] Connecting to root@192.168.126.130(192.168.126.130:22)..
  63. Checking slave recovery environment settings..
  64. Opening /home/mysql/mydata/data3/relay-log.info ... ok.
  65. Relay log found at /home/mysql/mydata/data3/relay_log, up to mysql-relay-bin.000002
  66. Temporary relay log file is /home/mysql/mydata/data3/relay_log/mysql-relay-bin.000002
  67. Testing mysql connection and privileges.. done.
  68. Testing mysqlbinlog output.. done.
  69. Cleaning up test file(s).. done.
  70. Sat Oct 18 14:14:47 2014 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='admin' --slave_host=192.168.126.129 --slave_ip=192.168.126.129 --slave_port=3307 --workdir=/var/tmp --target_version=10.0.13-MariaDB-log --manager_version=0.56 --relay_log_info=/home/mysql/mydata/data2/relay-log.info --relay_dir=/home/mysql/mydata/data2/ --slave_pass=xxx
  71. Sat Oct 18 14:14:47 2014 - [info] Connecting to root@192.168.126.129(192.168.126.129:22)..
  72. Checking slave recovery environment settings..
  73. Opening /home/mysql/mydata/data2/relay-log.info ... ok.
  74. Relay log found at /home/mysql/mydata/data2/relay_log, up to mysql-relay-bin.000002
  75. Temporary relay log file is /home/mysql/mydata/data2/relay_log/mysql-relay-bin.000002
  76. Testing mysql connection and privileges.. done.
  77. Testing mysqlbinlog output.. done.
  78. Cleaning up test file(s).. done.
  79. Sat Oct 18 14:14:58 2014 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='admin' --slave_host=192.168.126.129 --slave_ip=192.168.126.129 --slave_port=3308 --workdir=/var/tmp --target_version=10.0.13-MariaDB-log --manager_version=0.56 --relay_log_info=/home/mysql/mydata/data3/relay-log.info --relay_dir=/home/mysql/mydata/data3/ --slave_pass=xxx
  80. Sat Oct 18 14:14:58 2014 - [info] Connecting to root@192.168.126.129(192.168.126.129:22)..
  81. Checking slave recovery environment settings..
  82. Opening /home/mysql/mydata/data3/relay-log.info ... ok.
  83. Relay log found at /home/mysql/mydata/data3/relay_log, up to mysql-relay-bin.000002
  84. Temporary relay log file is /home/mysql/mydata/data3/relay_log/mysql-relay-bin.000002
  85. Testing mysql connection and privileges.. done.
  86. Testing mysqlbinlog output.. done.
  87. Cleaning up test file(s).. done.
  88. Sat Oct 18 14:15:10 2014 - [info] Slaves settings check done.
  89. Sat Oct 18 14:15:10 2014 - [info]
  90. 192.168.126.129(192.168.126.129:3306) (current master)
  91. +--192.168.126.130(192.168.126.130:3306)
  92. +--192.168.126.130(192.168.126.130:3307)
  93. +--192.168.126.130(192.168.126.130:3308)
  94. +--192.168.126.129(192.168.126.129:3307)
  95. +--192.168.126.129(192.168.126.129:3308)
  96.  
  97. Sat Oct 18 14:15:10 2014 - [info] Checking replication health on 192.168.126.130..
  98. Sat Oct 18 14:15:10 2014 - [info] ok.
  99. Sat Oct 18 14:15:10 2014 - [info] Checking replication health on 192.168.126.130..
  100. Sat Oct 18 14:15:10 2014 - [info] ok.
  101. Sat Oct 18 14:15:10 2014 - [info] Checking replication health on 192.168.126.130..
  102. Sat Oct 18 14:15:10 2014 - [info] ok.
  103. Sat Oct 18 14:15:10 2014 - [info] Checking replication health on 192.168.126.129..
  104. Sat Oct 18 14:15:10 2014 - [info] ok.
  105. Sat Oct 18 14:15:10 2014 - [info] Checking replication health on 192.168.126.129..
  106. Sat Oct 18 14:15:10 2014 - [info] ok.
  107. Sat Oct 18 14:15:10 2014 - [warning] master_ip_failover_script is not defined.
  108. Sat Oct 18 14:15:10 2014 - [warning] shutdown_script is not defined.
  109. Sat Oct 18 14:15:10 2014 - [info] Got exit code 0 (Not master dead).
  110.  
  111. MySQL Replication Health is OK.

这样就OK了。

7 开启masterha_manager

  1. # nohup masterha_manager --conf=/etc/masterha/app1.cnf > /tmp/mha_manager.log 2>&1 &

看一下状态:

  1. # masterha_check_status --conf=/etc/masterha/app1.cnf
  2.  
  3. app1 (pid:5161) is running(0:PING_OK), master:192.168.126.129

这个时候也可以检测一下日志,可以新开一个terminal:

tail -f /var/log/masterha/app1/manager.log

8 测试一下断掉129的3306以后能不能切换到130的3306:

  1. [root@bogon ~]# mysqld_multi --defaults-extra-file=/etc/my.cnf stop 1

但是这之前确保没有这个文件 /var/log/masterha/app1/app1.failover.complete

关掉实例之后就会发现刚才tail的日志不停的刷新,摘Failover Report出来:

  1. ----- Failover Report -----
  2.  
  3. app1: MySQL Master failover 192.168.126.129(192.168.126.129:3306) to 192.168.126.130(192.168.126.130:3306) succeeded
  4.  
  5. Master 192.168.126.129(192.168.126.129:3306) is down!
  6.  
  7. Check MHA Manager logs at bogon:/var/log/masterha/app1/manager.log for details.
  8.  
  9. Started automated(non-interactive) failover.
  10. The latest slave 192.168.126.130(192.168.126.130:3306) has all relay logs for recovery.
  11. Selected 192.168.126.130(192.168.126.130:3306) as a new master.
  12. 192.168.126.130(192.168.126.130:3306): OK: Applying all logs succeeded.
  13. 192.168.126.130(192.168.126.130:3307): This host has the latest relay log events.
  14. 192.168.126.130(192.168.126.130:3308): This host has the latest relay log events.
  15. 192.168.126.129(192.168.126.129:3307): This host has the latest relay log events.
  16. 192.168.126.129(192.168.126.129:3308): This host has the latest relay log events.
  17. Generating relay diff files from the latest slave succeeded.
  18. 192.168.126.130(192.168.126.130:3308): OK: Applying all logs succeeded. Slave started, replicating from 192.168.126.130(192.168.126.130:3306)
  19. 192.168.126.130(192.168.126.130:3307): OK: Applying all logs succeeded. Slave started, replicating from 192.168.126.130(192.168.126.130:3306)
  20. 192.168.126.129(192.168.126.129:3307): OK: Applying all logs succeeded. Slave started, replicating from 192.168.126.130(192.168.126.130:3306)
  21. 192.168.126.129(192.168.126.129:3308): OK: Applying all logs succeeded. Slave started, replicating from 192.168.126.130(192.168.126.130:3306)
  22. 192.168.126.130(192.168.126.130:3306): Resetting slave info succeeded.
  23. Master failover to 192.168.126.130(192.168.126.130:3306) completed successfully.

9 下面看看是不是已经切过来了,登陆到130的3306上看一下processlist:

确实是四个,再看看129的3307的slave status:

已经切换到了130的3306上。

再看看130的3307上:

这个配置起来不是很复杂,我觉得基本所有的开源项目安装配置都不难,关键都是在参数的配置上,下面是我参考的文档,有自己的也有别人的:

http://ylw6006.blog.51cto.com/470441/890360/

http://www.jb51.net/LINUXjishu/128753.html

http://www.cnblogs.com/wingsless/p/4002806.html

http://www.cnblogs.com/wingsless/p/4002806.html

MySQL MHA配置的更多相关文章

  1. MySQL MHA配置常见问题

    MHA在MySQL数据库中被广泛使用,它小巧易用,功能强大,实现了基于MySQL replication架构的自手动主从故障转移,从库重定向到主库并自动同步.尽管如此,在部署配置的过程中,由于疏忽总难 ...

  2. MYSQL + MHA +keepalive + VIP安装配置(一)--MYSQL安装配置

    一.总概: 本文介绍了MySQL高可用性的实现方案MHA,MHA由Node和Manager组成,Node运行在每一台MySQL服务器上,不管是MySQL主服务器,还是MySQL从服务器,都要安装Nod ...

  3. MySQL高可用之MHA配置

    本文简单介绍了MySQL的高可用实现方式之一的MHA MHA:Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点:通过提升某一从节点为新的主节点,基于主 ...

  4. MySQL MHA安装配置

    1.环境规划 192.168.12.131 node01 192.168.12.132 node02 192.168.12.133 node03 2.环境准备 一主两从GTID,略. 3.配置关键程序 ...

  5. MYSQL MHA

    MYSQL MHA 简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于 Face ...

  6. mha配置参数详解

    mha配置参数详解: 参数名字 是否必须 参数作用域 默认值 示例 hostname Yes Local Only - hostname=mysql_server1, hostname=192.168 ...

  7. 搭建MySQL MHA高可用

    本文内容参考:http://www.ttlsa.com/mysql/step-one-by-one-deploy-mysql-mha-cluster/ MySQL MHA 高可用集群 环境: Linu ...

  8. mysql mha 主从自动切换 高可用

    mha(Master High Availability)目前在MySQL多服务器(超过二台),高可用方面是一个相对成熟的解决方案. 一,什么是mha,有什么特性 1. 主服务器的自动监控和故障转移 ...

  9. CENTOS6.6 下mysql MHA架构搭建

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 本篇是自己搭建的一篇mysql MHA文章 前面的安装步骤基 ...

随机推荐

  1. 查看.NET Service Pack版本

    原文地址:如何确定已安装的 Microsoft .NET Framework 版本和 Service Pack 级别 使用以下注册表信息确定已安装的 Microsoft .NET Framework ...

  2. 树莓派_360wifi2_佳能MP236打印机

    入手树莓派后一直没时间弄,设想用360wifi做无线网卡,也一直不得解,今天成功写下经验 本人刷的是官方系统,版本为3.12.28,首先更新系统内核,参考以下网址: http://groenholdt ...

  3. lintcode-【简单题】快乐数

    题目: 写一个算法来判断一个数是不是"快乐数". 一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是 ...

  4. Hadoop HDFS编程 API入门系列之简单综合版本1(四)

    不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs4; import java.io.IOException; import ja ...

  5. CSS3常用选择器(二)

    本文继续介绍css3新增的选择器. 1.选择器 first-child.last-child.nth-child 和 nth-last-child 利用这几个选择器能够针对一个父元素中的第一个子元素. ...

  6. 一个最简单的登录页面测试case

    具体需求: 有一个登陆页面, (假如上面有2个textbox, 一个提交按钮. 请针对这个页面设计30个以上的testcase.) 此题的考察目的:面试者是否熟悉各种测试方法,是否有丰富的Web测试经 ...

  7. 解决IE上登陆oracle OEM时报:“证书错误,导航已阻止”的错误

    今天在IE上登陆OEM时,报证书错误,导航已阻止,我选择:继续浏览此网站(不推荐),但是点了之后还没有反应,在网上搜了很多,原因基本都是windows的问题,最后发现问题是:oracle oem证书的 ...

  8. 数据库记录转换成json格式 (2011-03-13 19:48:37) (转)

    http://blog.sina.com.cn/s/blog_621768f30100r6v7.html 数据库记录转换成json格式 (2011-03-13 19:48:37) 转载▼ 标签: 杂谈 ...

  9. Swift3.0基础语法学习<五>

    异常处理: // // ViewController5.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright © ...

  10. C#控件根据窗体改变大小

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...