MySQL-MHA高可用+Atlas读写分离配置

自古美人都是妖i 提交于 2019-11-26 12:14:52
***********MHA高可用+Atlas读写分离配置***********
关闭防火墙SELinux

rpm源码包下载:
92i2

1、构建本地YUM仓库:
    cd /etc/yum.repos.d/
    mkdir bak
    mv C* ./bak/
    cp ./bak/CentOS-Media.repo .
2、本地光盘yum安装依赖:
    yum install ncurses-devel libaio-devel -y
    yum install openssh-clients -y #密钥分发需要
3、创建mysql程序用户:
    useradd  -M -s /sbin/nologin  mysql
4、创建软连接:
    tar xf mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
    ln -s /usr/local/mysql-5.6.17-linux-glibc2.5-x86_64/ /usr/local/mysql
5、创建软连接命令,如果装有yum,查看命令的具体位置,否则在使用命令时会出现错误:
    ln -s /usr/local/mysql/bin/* /usr/local/bin/
6、复制启动脚本
    [root@mha-01 ~]# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
    [root@mha-01 ~]# chmod +x /etc/init.d/mysqld
7、初始化
    [root@mha-01 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
8、MySQL配置脚本=========my.cnf============================
[client]
port = 3306
[mysql]
prompt = \\u:data-01 \\r:\\m:\\s->
[mysqld]
user = mysql
port = 3306
open_files_limit = 1024
binlog_cache_size = 5M
binlog_format=mixed
slow_query_log
pid-file = mysqld.pid
lower_case_table_names = 1
default-storage-engine = InnoDB
character-set-server = utf8
log_slave_updates
#开启gtid配置
gtid_mode = ON
enforce_gtid_consistency
relay_log_purge = 0 #禁止删除relay log日志
relay-log = relay-bin #中继日志
relay-log-info-file = relay-log.info
pid-file = mysql.pid
server-id = 1
log-bin = mysql-bin
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
============================my.cnf============================
8-1、================可能出现的错误信息==================
    a、如果克隆的初始化后的mysql,克隆机不能正常打开。
    解决方案:
        删除data目录下存放的UUID
        
9、在所有节点上添加授权用户:
    ->grant replication slave on *.* to 'repl'@'192.168.88.%' identified by '123123';
9-1、在所有节点上添加mha用户:
    ->grant all privileges on *.* to mha@'192.168.88.%' identified by '123123';
9-2、删除无用的用户:
    提示:这里要删除都需要删除,否则在主从同步时候会出错
    ->delete from mysql.user where user='';
    ->delete from mysql.user where host='::1';
    ->delete from mysql.user where host='127.0.0.1';
9-3、查看mha用户:
    select user,host from mysql.user where user='mha';
    提示:参数错误修改:
    update mysql.user set host='192.168.88.%' where user='mha'; #错误后修改语句
10、从库添加授权用户:
    change master to master_host='192.168.88.67',master_user='repl',master_password='123123',master_auto_position=1;
    change master to master_host='192.168.88.67',master_port=3307,master_user='repl',master_password='123123',master_auto_position=1;
10-1、可能出现的问题=====
    a、从库IO  SQL 线程不正常
    解决方案:
        1、防火墙
        2、server-id
        3、停掉对应的SQL 或 IO线程,重新开启
            stop slave io_thread;
            stop slave sql_thread;
11、查看GTID是否开启,主从同步时自动定位同步的position
root:data-01 07:24:18->show global variables like '%gtid%';
+--------------------------+------------------------------------------+
| Variable_name            | Value                                    |
+--------------------------+------------------------------------------+
| enforce_gtid_consistency | ON                                       |
| gtid_executed            | 50626873-b6b3-11e7-bf8c-000c29002d23:1-5 |
| gtid_mode                | ON                                       |
| gtid_owned               |                                          |
| gtid_purged              |                                          |
+--------------------------+------------------------------------------+
5 rows in set (0.04 sec)
======================部署MHA节点======================
#创建yum源需要的工具包
#yum install createrepo -y
#createrepo -v .
光盘安装:
[root@mha-02 rpm]# yum -y install perl-DBD-MySQL
然后安装:
[root@mha-03 rpm]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
=============部署MHA管理节点=========================
#创建本地YUM仓库
#安装MHA需要的yum依赖,如果不能正常安装,rpm的源单独配置,将光盘的源注释掉
[root@mha-03 rpm]# yum -y install perl-Config-Tiny epel-release perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
[root@mha-03 rpm]# rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm
======可能出现的问题
      1、如果yum安装不成功,将光盘源注释掉,单独缓存 rpm 源
      2、如果perl-Time-HiRes安装错误,试试重启,然后本地直接:yum install perl-Time-HiRes

============创建mha管理节点上需要的目录文件=========================
mkdir -p /etc/mha
mkdir -p /var/log/mha/mha1
cd /etc/mha/
创建mha配置脚本:
==============vim /etc/mha/mha1.cnf=================
问题1:
    需要再每个节点服务器,主从服务器上,配置hosts域名对应,也就是这里的hostname=域名 而不是IP地址
    提示:如果hostname对应的是IP地址,masterha_check_repl  --conf=/etc/mha/mha1.cnf 检查是: is not  OK
[server default]
#manager管理日志存放路径
manager_log=/var/log/mha/mha1/manager
#manager管理日志的目录路径
manager_workdir=/var/log/mha/mha1
#binlog日志的存放路径
master_binlog_dir=/usr/local/mysql/data
#添加脚本位置---源码包中的脚本
#master_ip_failover_script=/usr/local/bin/master_ip_failover
user=mha #管理账户
#管理账户密码
password=123123
#存活检查的间隔时间
ping_interval=2
#主从复制的授权账户
repl_user=repl
#主从复制的授权账户密码
repl_password=123123
#用于ssh连接的账户
ssh_user=root
[server1]
hostname=192.168.88.67    #这里应该是:域名 data-01.kun.cc
port=3306
[server2]
#candidate_master=1 #此条暂时注释掉(后面解释)
#check_repl_delay=0 #此条暂时注释掉(后面解释)
hostname=192.168.88.69    #这里应该是:域名 data-02.kun.cc
port=3306
[server3]
#candidate_master=1
#check_repl_delay=0
hostname=192.168.88.71    #这里应该是:域名 data-03.kun.cc
port=3306
==============vim /etc/mha/mha1.cnf=================
=========特别说明:=================
参数:candidate_master=1
解释:设置为候选master,如果设置该参数以后,发生主从切换以后会将此从库提升为
主库,即使这个主库不是集群中事件最新的slave
参数:check_repl_delay=0
解释:默认情况下如果一个slave落后master 100M的relay logs 的话,MHA将不会选
择该slave作为一个新的master,因为对于这个slave的恢复需要花费很长时间,通过设
置check_repl_delay=0,MHA触发切换在选择一个新的master的时候将会忽略复制延
时,这个参数对于设置了candidate_master=1的主机非常有用,因为这个候选主在切换
的过程中一定是新的master
*****************分发密钥***********************
#安装密钥分发工具
yum install openssh-clients -y
配置文件:[root@mha-03 mha]# vim /etc/ssh/ssh_config
35 #   StrictHostKeyChecking ask
ssh-keygen -t dsa -P "" -f ~/.ssh/id_dsa >/dev/null 2>&1
ssh-copy-id -i /root/.ssh/id_dsa.pub root@192.168.88.51
检查SHH、主从复制:
    [root@mysql-db03 ~]# masterha_check_ssh --conf=/etc/mha/mha1.cnf #ssh检查命令
    [root@mysql-db03 ~]# masterha_check_repl --conf=/etc/mha/mha1.cnf  #主从复制检测
#错误信息1:
[root@mysql-03 ~]# masterha_check_ssh --conf=/etc/mha/mha1.cnf
Sun Oct 22 00:42:01 2017 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Sun Oct 22 00:42:01 2017 - [info] Reading application default configuration from /etc/mha/mha1.cnf..
Parameter ping_interval must be positive integer! current value: 2 #存活检查的间隔时间
at /usr/share/perl5/vendor_perl/MHA/SSHCheck.pm line 148
解决方案
    在MHA的配置脚本中,行后是不能有空格出现的,否则会检查不通过。
    
错误信息2:
Wed Oct 25 20:04:38 2017 - [error][/usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln671] Master 192.168.88.71:3307 from which slave mha-01.kun.cc(192.168.88.108:3307) replicates is not defined in the configuration file!
Wed Oct 25 20:04:38 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations.  at /usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm line 326
Wed Oct 25 20:04:38 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln523] Error happened on monitoring servers.
Wed Oct 25 20:04:38 2017 - [info] Got exit code 1 (Not master dead).
解决方案
    清空有作为从库的信息
    mysql> reset slave;
    执行reset slave,其实是把master.info和relay-log.info文件给删除,但里面的同步信息还在,那么可以用这个方法,让其清除的彻彻底底。
    mysql> reset slave all;  
    
#启动mha
nohup masterha_manager --conf=/etc/mha/mha1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/mha1/manager.log 2>&1 &
#说明:
nohup:启动命令
--conf:指定配置文件位置
--remove_dead_master_conf:如果有master down了,就去掉配置文件里该master的部分。
可能出现的问题:
    1、当原来的主宕机后,mha的主进程会自杀掉自己,这时候如果原来的主重新启动需要将做change master to 到新的主,
    如果这时候的主从没有成功,则mha的进程是起不来的。
所以:
    需要先做好主从,然后再起 MHA 的主进程。
====================================
=========特别说明:=================
参数:
candidate_master=1
解释:设置为候选master,如果设置该参数以后,发生主从切换以后会将此从库提升为
主库,即使这个主库不是集群中事件最新的slave
参数:check_repl_delay=0
解释:默认情况下如果一个slave落后master 100M的relay logs 的话,MHA将不会选
择该slave作为一个新的master,因为对于这个slave的恢复需要花费很长时间,通过设
置check_repl_delay=0,MHA触发切换在选择一个新的master的时候将会忽略复制延
时,这个参数对于设置了candidate_master=1的主机非常有用,因为这个候选主在切换
的过程中一定是新的master
=======================================
=============配置VIP漂移===============
=======================================
1、从源码包中将需要的脚本拷贝出来
    [root@mha-03 ~]# tar xf mha4mysql-manager-0.56.tar.gz
    [root@mha-03 ~]# cd mha4mysql-manager-0.56
    [root@mha-03 mha4mysql-manager-0.56]# cd samples/scripts/
    [root@mha-03 scripts]# ll
    总用量 32
    -rwxr-xr-x. 1 4984 users  3648 4月   1 2014 master_ip_failover  #这就是管理虚拟IP的脚本
    -rwxr-xr-x. 1 4984 users  9870 4月   1 2014 master_ip_online_change
    -rwxr-xr-x. 1 4984 users 11867 4月   1 2014 power_manager
    -rwxr-xr-x. 1 4984 users  1360 4月   1 2014 send_report
2、将管理脚本拷贝到执行路径下
[root@mha-03 scripts]# cp master_ip_failover /usr/local/bin/  #复制到/usr/local/bin目录
[root@mha-03 scripts]# ll /usr/local/bin/master_ip_failover
-rwxr-xr-x. 1 root root 3648 10月 23 11:02 /usr/local/bin/master_ip_failover
3、在 /etc/mha/mha1.cnf 配置文件中添加脚本
master_ip_failover_script=/usr/local/bin/master_ip_failover     #添加脚本位置
*重要脚本=========cat /usr/local/bin/master_ip_failover=========
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';
use Getopt::Long;
my (
  $command,        $ssh_user,         $orig_master_host,
  $orig_master_ip, $orig_master_port, $new_master_host,
  $new_master_ip,  $new_master_port
);
my $vip = '192.168.0.60/24'; #修改成VIP
my $key = '0'; #绑定的网卡
my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip";
my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down";
GetOptions(
  'command=s'             => \$command,
  'ssh_user=s'            => \$ssh_user,
  'orig_master_host=s'    => \$orig_master_host,
  'orig_master_ip=s'      => \$orig_master_ip,
  'orig_master_port=i'    => \$orig_master_port,
  'new_master_host=s'     => \$new_master_host,
  'new_master_ip=s'       => \$new_master_ip,
  'new_master_port=i'     => \$new_master_port,
);
exit &main();
sub main {
    if ( $command eq "stop" || $command eq "stopssh" ) {
            my $exit_code = 1;
        eval {
             print "Disabling the VIP on old master:$orig_master_host \n";
              &stop_vip();
              $exit_code = 0;
        };
        if ($@) {
              warn "Got Error: $@\n";
              exit $exit_code;
        }
        exit $exit_code;
      }
      elsif ( $command eq "start" ) {
            my $exit_code = 10;
        eval {
              print "Enabling the VIP - $vip on the new master - $new_master_host \n";
              &start_vip();                        ###############
              $exit_code = 0;
        };
        if ($@) {
              warn $@;
              exit $exit_code;
        }
        exit $exit_code;
      }
      elsif ( $command eq "status" ) {
            print "Checking the Status of the script..OK \n";
            `ssh $ssh_user\@$orig_master_host \" $ssh_start_vip \"`;
            exit 0;
      }
      else {
            &usage();
            exit 1;
      }
    }
sub start_vip() {
    `ssh $ssh_user\@$new_master_host \" $ssh_start_vip \"`;
}
sub stop_vip() {
    `ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`;
}
sub usage {
  print
"Usage: master_ip_failover --command=start|stop|stopssh|status --orig_master_host=host --orig_master_ip=ip --orig_master_port=port --new_master_host=host --new_master_ip=ip --new_master_port=port\n";
}

======cat /usr/local/bin/master_ip_failover==============
4、启动
nohup masterha_manager --conf=/etc/mha/mha1.cnf -remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/mha1/manager.log 2>&1 &
===========================================
=========配置binlog-server=================
===========================================
添加binlog-server
创建存放binlog日志的目录
    [root@mha-03 ~]# mkdir /data/mysql/binlog/ -p
拉取主库的binlog日志:---->一定要在当前目录下执行这条命令
    [root@mha-03 binlog]# mysqlbinlog -R --host=192.168.88.108 --user=mha --password=123123 --raw --stop-never mysql-bin.000001 &
拉取主库binlog日志的进程运行:
[root@mha-03 binlog]# ps -ef | grep mysqlbinlog | grep -v grep
root       9314   3444  0 15:25 pts/1    00:00:00 mysqlbinlog -R --host=192.168.88.108 --user=mha --password=x xxxx --raw --stop-never mysql-bin.000001
添加的模块:
    [binlog1]      #添加binlog模块
    no_master=1     #不允许切换为主
    hostname=mha-03.kun.cc    #binlog日志服务器地址
    master_binlog_dir=/data/mysql/binlog/   #binlog存放位置优先级比全局的高
    
==================================================
==============Atlas读写分离=======================
==================================================
Atlas主要功能
    1. 读写分离
    2. 从库负载均衡
    3. IP过滤
    4. 自动分表
    5. DBA可平滑上下线DB
    6. 自动摘除宕机的DB
Atlas相对于官方MySQL-Proxy的优势
    1. 将主流程中所有Lua代码用C重写,Lua仅用于管理接口。
    2. 重写网络模型,线程模型
    3. 实现了真正意义上的连接池
    4. 优化了锁机制,性能提高数十倍
提示:利用mha的高可用使atlas区分出主库、从库。
    1、实现了主库的高可用,当主宕机时,提升某个从库为主。
    2、在atlas配置文件中声明出所有从库。利用mha的高可用,实现读写分离。(主库只有一个)
    
安装
[root@mha-03 rpm]# rpm -ivh Atlas-2.2.1.el6.x86_64.rpm
Preparing...                ########################################### [100%]
   1:Atlas                  ########################################### [100%]
    
加密
[root@mha-03 bin]# pwd
/usr/local/mysql-proxy/bin
[root@mha-03 bin]# ./encrypt 123123
++gAN07C/Q0=
修改mysql-proxy的配置文件:
[root@mha-03 rpm]# vim  /usr/local/mysql-proxy/conf/test.cnf
12 proxy-backend-addresses = 192.168.0.60:3307     #这里添加VIP地址
    15 proxy-read-only-backend-addresses = 192.168.88.109:3307@1,192.168.88.110:3307@1    #从库IO地址及端口号
    18 pwds = root:++gAN07C/Q0=, mha:++gAN07C/Q0=      #这里是加密后的密文
    
    29 #日志级别,分为message、warning、critical、error、debug五个级别
    30 log-level = error
    36 sql-log = ON     #打开日志
    
    45  proxy-address = 192.168.88.110:3306        #Atlas的工作监听端口(提 供代理服务)
    48  admin-address = 192.168.88.110:1234          #Atlas的管理监听端口
    
> 提示:
> 主从复制的主从数据库的默认3306端口需要修改成3307
> 第18行为登陆MySQL的授权账号信息,其中密码需要加密(通 过/usr/local/mysql-proxy/bin/encrypt加密工具来加密
    
1、如果mha进程启动着需要杀掉mha进程
    jobs 命令输入后,后台是没有对应的进程的。
2、修改mha管理端配置文件:
    vim /etc/my.cnf 将每个节点的port端口修改成3307
3、重启所有节点的mysql服务器
4、重新主从同步-注意同步的端口号,以及主库的IP/端口号
    ->change master to master_host='192.168.88.108',master_port=3307,master_user='repl',master_password='123123',master_auto_position=1;
root:data-01 04:25:10->show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.88.108
                  Master_User: repl
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000015
          Read_Master_Log_Pos: 231
               Relay_Log_File: relay-bin.000002
                Relay_Log_Pos: 361
        Relay_Master_Log_File: mysql-bin.000015
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
5、修改mha管理端配置文件:
    vim /etc/mha/mha1.cnf 将每个server的port端口修改成3307
    [root@mha-01 data]# vim /etc/my.cnf
    [root@mha-01 data]# cat -n /etc/my.cnf | grep 3307
     9    port = 3307
    [root@mha-02 ~]# vim /etc/my.cnf
    [root@mha-02 ~]# cat -n /etc/my.cnf | grep 3307
     9    port = 3307
    [root@mha-03 bin]# vim /etc/my.cnf
    [root@mha-03 bin]# cat -n /etc/my.cnf | grep 3307
     9    port = 3307
6、启动对应的进程
6-1、启动mysqlbinlog日志备份的进程--拉取binlog日志的时候,一定要在这个目录执行,因为拉取到的是当前的位置
    [root@mha-03 binlog]# pwd
    /data/mysql/binlog
    [root@mha-03 binlog]# mysqlbinlog -R --host=192.168.88.108 --port=3307 --user=mha --password=123123 --raw --stop-never mysql-bin.000001 &
    
    [root@mha-03 binlog]# mysqlbinlog -R --host=192.168.88.108 --port=3307 --user=mha --password=123123 --raw --stop-never mysql-bin.000001 &
    [1] 10037
    [root@mha-03 binlog]# Warning: Using a password on the command line interface can be insecure.
[root@mha-03 binlog]# ll
总用量 1324
-rw-r--r--. 1 root root   67116 10月 23 16:38 mysql-bin.000001
-rw-r--r--. 1 root root 1230893 10月 23 16:38 mysql-bin.000002
-rw-r--r--. 1 root root    1619 10月 23 16:38 mysql-bin.000003
-rw-r--r--. 1 root root     544 10月 23 16:38 mysql-bin.000004
-rw-r--r--. 1 root root     214 10月 23 16:38 mysql-bin.000005
-rw-r--r--. 1 root root     191 10月 23 16:38 mysql-bin.000006
-rw-r--r--. 1 root root    2308 10月 23 16:38 mysql-bin.000007
-rw-r--r--. 1 root root     254 10月 23 16:38 mysql-bin.000008
-rw-r--r--. 1 root root     402 10月 23 16:38 mysql-bin.000009
-rw-r--r--. 1 root root     231 10月 23 16:38 mysql-bin.000010
-rw-r--r--. 1 root root     254 10月 23 16:38 mysql-bin.000011
-rw-r--r--. 1 root root     254 10月 23 16:38 mysql-bin.000012
-rw-r--r--. 1 root root     278 10月 23 16:38 mysql-bin.000013
-rw-r--r--. 1 root root    3175 10月 23 16:38 mysql-bin.000014
-rw-r--r--. 1 root root     120 10月 23 16:38 mysql-bin.000015
[root@mha-03 binlog]# jobs
[1]+  Running                 mysqlbinlog -R --host=192.168.88.108 --port=3307 --user=mha --password=123123 --raw --stop-never mysql-bin.000001 &
[root@mha-03 binlog]# nohup masterha_manager --conf=/etc/mha/mha1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/mha1/manager.log 2>&1 &
[2] 10040
[root@mha-03 binlog]# jobs
[1]-  Running   mysqlbinlog -R --host=192.168.88.108 --port=3307 --user=mha --password=123123 --raw --stop-never mysql-bin.000001 &
[2]+  Running   nohup masterha_manager --conf=/etc/mha/mha1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/mha1/manager.log 2>&1 &
[root@mha-03 binlog]# /usr/local/mysql-proxy/bin/mysql-proxyd test start
OK: MySQL-Proxy of test is started
[root@mha-03 binlog]# netstat -antup | grep mysql-proxy
tcp        0      0 192.168.88.110:2345         0.0.0.0:*                   LISTEN      10097/mysql-proxy   
tcp        0      0 192.168.88.110:3306         0.0.0.0:*                   LISTEN      10097/mysql-proxy
================================================================
    
6-2、启动mha管理进程
    nohup masterha_manager --conf=/etc/mha/mha1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/mha1/manager.log 2>&1 &
6-3、启动Atlas服务
    /usr/local/mysql-proxy/bin/mysql-proxyd test start
========================================================
=为什么修改端口为3307?
=  这是因为对外提供服务的是以代理的方式提供访问的,为了方便对外提供默认端口方便而已
========================================================
#说明:
#为何启动服务需要加test,因为在Atlas配置文件里定义了一个实例名字为test
#Atlas实际是启动了某个实例(当然也可以多实例)
[root@mysql-db03 conf]# netstat -antup | grep mysql-proxy
tcp        0      0 0.0.0.0:1234                0.0.0.0:*                LISTEN      25006/mysql-proxy   
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                LISTEN      25006/mysql-proxy   
#说明:
#监听3306的为Atlas对外提供代理的端口;监听1234是Atlas的管理监听端口
7、登录-登陆Atlas管理端
    [root@mha-03 binlog]# mysql -uuser -ppwd -P2345 -h 192.168.88.110
>  5 #管理接口的用户名
>  6 admin-username = user
> 47 #Atlas监听的管理接口IP和端口
> 48 admin-address = 192.168.88.110:2345
      
user:data-01 04:45:35->show databaes;    #看所有库,报错,并不让看
ERROR 1105 (07000): use 'SELECT * FROM help' to see the supported commands
user:data-01 04:45:40->select * from help;
user:data-01 04:45:51->select * from backends;
+-------------+---------------------+-------+------+
| backend_ndx | address             | state | type |
+-------------+---------------------+-------+------+
|           1 | 192.168.88.222:3307 | up    | rw   |
|           2 | 192.168.88.109:3307 | up    | ro   |
|           3 | 192.168.88.110:3307 | up    | ro   |
+-------------+---------------------+-------+------+
3 rows in set (0.00 sec)
>>>>>这里是平滑管理界面,可以在这里根据选项修改设置<<<<<<<<<<<<<
8、在从库上分别创建本机的数据库
    root:data-02 12:54:22->create database db02;
    root:data-03 12:54:22->create database db03;
9、读写分离
[root@mha-03 bin]# mysql -umha -p123123 -h 192.168.88.110 -P 3306
>mha不是root用户,如果用root登录会出现错误
>123123:是设置的mha的密码
>192.168.88.110 是Atlast的管理IP地址及端口号
    44 #Atlas监听的工作接口IP和端口
    45 proxy-address = 192.168.88.110:3306
>
>
mha:data-03 06:06:00->show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db0001             |
| db03               |
| mysql              |
| performance_schema |
| test               |
| test01             |
+--------------------+
7 rows in set (0.00 sec)
mha:data-03 06:06:02->show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db0001             |
| db02               |
| mysql              |
| performance_schema |
| test               |
| test01             |
+--------------------+
7 rows in set (0.00 sec)
mha:data-03 06:06:03->create database test01;#刚才执行的SQL语句

mha-manager的高可用:如果manager独立主机,做高可用mha可以同时在主备启动mha的主进程,
如果只有一组,则可以在所有mysql的节点上后台跑mha的主进程


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!