一、Mysql-mmm集群技术概述;

概述:MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,可以说是mysql主主复制管理器。

虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。

MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟ip,同时它还可以备份数据,实现两节点之间的数据同步等。由于MMM无法完全的保证数据一致性,所以MMM适用于对数据的一致性要求不是很高,但是又想最大程度的保证业务可用性的场景。

二、Mysql-mmm优缺点;

三、Mysql-mmm内部工作架构;

进程类型:

mmm_mond:监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行;

mmm_agentd:运行在每个mysql服务器上(Master和Slave)的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在被监管机上运行;

mmm_control:一个简单的脚本,提供管理mmm_mond进程的命令;

工作架构:

工作原理:

mysql-mmm的监管端会提供多个虚拟IP(VIP),包括一个可写VIP,多个可读VIP;

通过监管的管理,这些IP会绑定在可用mysql之上;

当某一台mysql宕机时,监管会将VIP迁移至其他mysql;

四、案例搭建Mysql-mmm+mysql 5.6双主高可用集群;

案例环境:

系统

IP地址

主机名

所需软件

Centos 7.4 1708 64bit

192.168.100.101

master1

mysql-5.6.36.tar.gz

mysql-mmm

mysql-mmm-agent

mysql-tools

Centos 7.4 1708 64bit

192.168.100.102

master2

mysql-5.6.36.tar.gz

mysql-mmm

mysql-mmm-agent

mysql-tools

Centos 7.4 1708 64bit

192.168.100.103

slave1

mysql-5.6.36.tar.gz

mysql-mmm

mysql-mmm-agent

mysql-tools

Centos 7.4 1708 64bit

192.168.100.104

slave2

mysql-5.6.36.tar.gz

mysql-mmm

mysql-mmm-agent

mysql-tools

Centos 7.4 1708 64bit

192.168.100.105

monitor

mysql-5.6.36.tar.gz

mysql-mmm

mysql-mmm-monitor

mysql-tools

Centos 7.4 1708 64bit

192.168.100.106

client

mysql

案例步骤:

  • 部署master1节点的ntp服务以及域名解析;
  • 配置master2、slave1、slave2、monitor节点同步ntp时间及域名解析(在此只列举master2单台主机配置);
  • 分别在master1、master2、slave1、slave2节点上安装mysql服务(在此只列举master1单台主机配置);
  • 配置master1实现双主复制;
  • 配置master2实现双主复制;
  • 配置slave1和slave2实现主从复制(在此只列举slave1单台主机配置);
  • 分别在master1、master2、slave1、slave2四个节点安装mysql-mmm软件程序并且配置agent指定本机的节点名称(在此只列举master1单台主机配置);
  • 在master1节点上授权monitor节点连接数据库集群;
  • 安装monitor节点上的mysql-mmm软件程序;
  • 配置 monitor节点上的mysql-mmm的配置文件并且复制到各个mysql节点;
  • 启动master1、master2、slave1、slave2四个节点上的mysql-mmm服务(在此只列举master1单台主机配置);
  • 启动monitor节点上的mysql-mmm服务并查看集群状态;
  • 客户端验证测试读写数据;
  • 将master1主节点的mysql服务停止,测试集群状况;
  • 关闭slave1和slave2节点的写功能,使其处于只读状态;
  • 客户端访问测试slave节点是否可写;
hostnamectl set-hostname master1  #更改主机名master1是更改的主机的名字。
bash        #刷新主机名
  • 部署master1节点的ntp服务以及域名解析;

[root@master1 ~]# cat <<END >>/etc/hosts

192.168.100.208 master1

192.168.100.209 master2

192.168.100.210 slave1

192.168.100.211 slave2

192.168.100.212 monitor

END

[root@master1 ~]# yum -y install ntp

[root@master1 ~]# sed -i '/^server/s/^/#/g' /etc/ntp.conf

[root@master1 ~]# cat <<END >>/etc/ntp.conf

server 127.127.1.0

fudge 127.127.1.0 stratum 8

END

[root@master1 ~]# systemctl start ntpd

[root@master1 ~]# systemctl enable ntpd

Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.

  • 配置master2slave1slave2monitor节点同步ntp时间及域名解析(在此只列举master2单台主机配置);

[root@master2 ~]# cat <<END >>/etc/hosts

192.168.100.101 master1

192.168.100.102 master2

192.168.100.103 slave1

192.168.100.104 slave2

192.168.100.105 monitor

END

[root@master2 ~]# yum -y install ntpdate

[root@master2 ~]# /usr/sbin/ntpdate 192.168.100.101

ech 9 Aug 18:04:38 ntpdate[1106]: adjust time server 192.168.100.101 offset 0.299673 sec

[root@master2 ~]# echo "/usr/sbin/ntpdate 192.168.100.101">>/etc/rc.local

[root@master2 ~]# chmod +x /etc/rc.local

  • 分别在master1master2slave1slave2节点上安装mysql服务(在此只列举master1单台主机配置);

[root@master1 ~]# yum -y install ncurses cmake

[root@master1 ~]# mount /dev/cdrom /mnt/

mount: /dev/sr0 写保护,将以只读方式挂载

[root@master1 ~]# rpm -ivh /mnt/Packages/ncurses-devel-5.9-13.20130511.el7.x86_64.rpm --nodeps

[root@master1 ~]# ls

mysql-5.6.36.tar.gz

[root@master1 ~]# tar zxvf mysql-5.6.36.tar.gz -C /usr/src/

[root@master1 ~]# cd /usr/src/mysql-5.6.36/

[root@master2 mysql-5.6.36]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1

[root@master1 mysql-5.6.36]# make

[root@master1 mysql-5.6.36]# make install

[root@master1 mysql-5.6.36]# cd

[root@master1 ~]# cp /usr/src/mysql-5.6.36/support-files/mysql.server /etc/init.d/

[root@master1 ~]# chmod +x /etc/init.d/mysql.server

[root@master1 ~]# cat <<END >>/usr/lib/systemd/system/mysqld.service

[Unit]

Description=mysqldapi

After=network.target

[Service]

Type=forking

PIDFile=/usr/local/mysql/logs/mysqld.pid

ExecStart=/etc/init.d/mysql.server start

ExecReload=/etc/init.d/mysql.server restart

ExecStop=/etc/init.d/mysql.server stop

PrivateTmp=Flase

[Install]

WantedBy=multi-user.target

END

[root@master1 ~]# echo "export PATH=$PATH:/usr/local/mysql/bin/" >>/etc/profile

[root@master1 ~]# source /etc/profile

[root@master1 ~]# groupadd mysql

[root@master1 ~]# useradd -g mysql mysql

[root@master1 ~]# cat <<END >/etc/my.cnf

[mysqld]

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

character_set_server=utf8

init_connect='SET NAMES utf8'

log-error=/usr/local/mysql/logs/mysqld.log

pid-file=/usr/local/mysql/logs/mysqld.pid

skip-name-resolve

END

[root@master1 ~]# mkdir /usr/local/mysql/logs

[root@master1 ~]# chown mysql:mysql /usr/local/mysql/ -R

[root@master1 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data                    ##初始化mysql

[root@master1 ~]# systemctl start mysqld

[root@master1 ~]# systemctl enable mysqld

Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.

[root@master1 ~]# netstat -utpln |grep 3306

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      31481/mysqld

[root@master1 ~]# mysqladmin -uroot password 123123

Warning: Using a password on the command line interface can be insecure.

[root@master1 ~]# mysql -uroot -p123123

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+

mysql> exit

  • 配置master1实现双主复制;

[root@master1 ~]# cat <<END >>/etc/my.cnf

server-id=1

log-bin=mysql-bin

log-slave-updates

sync_binlog=1

auto_increment_increment=2

auto_increment_offset=1

relay-log=relay1-log-bin

relay-log-index=slave-relay1-bin.index

END

注解:

sync_binlog=1                                             ##主机每次提交事务的时候把二进制日志的内容同步到磁盘上,所以即使服务器崩溃,也会把时间写入到日志中;

auto_increment_increment=2                ##以下两参数用于主主复制中,用于错开增值,防止键值冲突

[root@master1 ~]# systemctl restart mysqld

[root@master1 ~]# mysql -uroot -p123123

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |      120 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+

mysql> grant replication slave on *.* to 'master'@'192.168.100.%' identified by '123123';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

  • 配置master2实现双主复制;

[root@master2 ~]# cat <<END >>/etc/my.cnf

server-id=2

log-bin=mysql-bin

log-slave-updates

sync_binlog=1

auto_increment_increment=2

auto_increment_offset=1

relay-log=relay2-log-bin

relay-log-index=slave-relay2-bin.index

END

[root@master2 ~]# systemctl restart mysqld

[root@master2 ~]# mysql -uroot -p123123

mysql> change master to master_host='192.168.100.102',master_user='master',master_password='123123',master_log_file='mysql-bin.000001',master_log_pos=120;

Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

[root@master2 ~]# mysql -uroot -p123123

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |      120 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+

mysql> grant replication slave on *.* to 'master'@'192.168.100.%' identified by '123123';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

[root@master1 ~]# mysql -uroot -p123123

mysql> change master to master_host='192.168.100.101',master_user='master',master_password='123123',master_log_file='mysql-bin.000001',master_log_pos=120;

Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.100.102

Master_User: master

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 421

Relay_Log_File: relay1-log-bin.000002

Relay_Log_Pos: 584

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

  • 配置slave1slave2实现主从复制(在此只列举slave1单台主机配置);

[root@slave1 ~]# cat <<END >>/etc/my.cnf

server-id=4

relay-log=relay4-log-bin

relay-log-index=slave-relay4-bin.index

END

[root@slave1 ~]# systemctl restart mysqld

[root@slave1 ~]# mysql -uroot -p123123

mysql> change master to master_host='192.168.100.101',master_user='master',master_password='123123',master_log_file='mysql-bin.000001',master_log_pos=120;

Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> start slave;

Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.100.101

Master_User: master

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000002

Read_Master_Log_Pos: 421

Relay_Log_File: relay3-log-bin.000003

Relay_Log_Pos: 584

Relay_Master_Log_File: mysql-bin.000002

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

[root@master1 ~]# mysql -uroot -p123123

mysql> create database linuxfan;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| linuxfan           |

| mysql              |

| performance_schema |

| test               |

+--------------------+

mysql> exit

[root@master2 ~]# mysql -uroot -p123123

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| linuxfan           |

| mysql              |

| performance_schema |

| test               |

+--------------------+

mysql> exit

[root@slave1 ~]# mysql -uroot -p123123

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| linuxfan           |

| mysql              |

| performance_schema |

| test               |

+--------------------+

mysql> exit

  • 分别在master1master2slave1slave2 monitor五个节点安装mysql-mmm软件程序并且配置agent指定本机的节点名称(在此只列举master1单台主机配置);

配置本地yum源,上传Mysql_mmm_rpm文件夹到master1/root

scp -r Mysql_mmm_rpm root@192.168.100.209:/root/

scp -r Mysql_mmm_rpm root@192.168.100.210:/root/

scp -r Mysql_mmm_rpm root@192.168.100.214:/root/

scp -r Mysql_mmm_rpm root@192.168.100.212:/root/

cat /etc/yum.repos.d/dgf.repo

[local]

name=local

baseurl=file:///mnt

enabled=1

gpgcheck=0

[Mysql_mmm_rpm]

name=Mysql_mmm_rpm

baseurl=file:///root/Mysql_mmm_rpm

enabled=1

gpgcheck=0

[root@master1 ~]# cd /etc/yum.repos.d/

scp dgf.repo root@192.168.100.209:/etc/yum.repos.d/
scp dgf.repo root@192.168.100.210:/etc/yum.repos.d/

scp dgf.repo root@192.168.100.214:/etc/yum.repos.d/

scp dgf.repo root@192.168.100.212:/etc/yum.repos.d/

[root@master1 ~]# yum -y install mysql-mmm mysql-mmm-agent mysql-mmm-tools

[root@master1 ~]# vi /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf

# The 'this' variable refers to this server.  Proper operation requires

# that 'this' server (db1 by default), as well as all other servers, have the

# proper IP addresses set in mmm_common.conf.

this db1

:wq

[root@master2 ~]# egrep -v "^#|^$" /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf

this db2

[root@slave1 ~]# egrep -v "^#|^$" /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf

this db3

[root@slave2 ~]# egrep -v "^#|^$" /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf

this db4

  • master1节点上授权monitor节点连接数据库集群;

[root@master1 ~]# mysql -uroot -p123123

mysql> grant replication client on *.* to 'mmm_monitor'@'192.168.100.%' identified by 'monitor';

Query OK, 0 rows affected (0.00 sec)

mysql> grant super,replication client,process on *.* to 'mmm_agent'@'192.168.100.%' identified by 'agent';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

权限注解:

replication client:权限用于执行show master status等命令。这些命令是用来查看复制状态的;

replication slave:是用于连接主库从库进行读取二进制文件进而实现复制的;

super:杀死mysql中连接的进程,设置全局变量,重置主从配置的权限;
process:具有查看当前运行的sql的权限 ,以及explain执行计划;

  • 安装monitor节点上的mysql-mmm软件程序;

[root@monitor ~]# yum -y install mysql-mmm mysql-mmm-tools mysql-mmm-monitor

  • 配置 monitor节点上的mysql-mmm的配置文件并且复制到各个mysql节点;

[root@monitor ~]# vi /etc/mysql-mmm/mmm_common.conf

active_master_role      writer                            ##指定活跃角色为写角色

<host default>

cluster_interface       eth0                         ##承载的网卡

pid_path                /var/run/mysql-mmm/mmm_agentd.pid

bin_path                /usr/libexec/mysql-mmm/                ##可执行文件路径

replication_user        master                    ##mysql集群主从复制账户

replication_password    123123

agent_user              mmm_agent     ##monitor连接集群的账户

agent_password          agent

</host>

<host db1>

ip      192.168.100.101

mode    master

peer    db2                                                       ##指定对立的节点名

</host>

<host db2>

ip      192.168.100.102

mode    master

peer    db1

</host>

<host db3>

ip      192.168.100.103

mode    slave

</host>

<host db4>

ip      192.168.100.104

mode    slave

</host>

<role writer>

hosts   db1, db2

ips     192.168.100.250

mode    exclusive                                   ##同一时间存在单个主

</role>

<role reader>

hosts   db3, db4

ips     192.168.100.251, 192.168.100.252

mode    balanced                                   ##轮询

</role>

[root@monitor ~]# vi  /etc/mysql-mmm/mmm_mon.conf

include mmm_common.conf

<monitor>

ip                  127.0.0.1

pid_path            /var/run/mysql-mmm/mmm_mond.pid

bin_path            /usr/libexec/mysql-mmm

status_path         /var/lib/mysql-mmm/mmm_mond.status

ping_ips            192.168.100.101, 192.168.100.102, 192.168.100.103, 192.168.100.104                                            ##指定监听的所有节点ip

auto_set_online     60                          ##判定其online的时间,超过60s认为其down

</monitor>

<host default>

monitor_user        mmm_monitor          ##monitor的工作用户

monitor_password    monitor

</host>

debug 0

[root@monitor ~]# for i in 101 102 103 104;do scp /etc/mysql-mmm/mmm_common.conf root@192.168.100.$i:/etc/mysql-mmm/; done             ##将配置文件复制到mysql节点

  • 启动master1master2slave1slave2四个节点上的mysql-mmm服务(在此只列举master1单台主机配置);

[root@master1 ~]# mkdir /var/run/mysql-mmm

[root@master1 ~]# vi /usr/lib/systemd/system/mysql-mmm-agent.service

7 PIDFile=/var/run/mysql-mmm/mmm_agentd.pid

[root@master1 ~]# systemctl daemon-reload

[root@master1 ~]# systemctl start mysql-mmm-agent

[root@master1 ~]# netstat -utpln |grep mmm

tcp        0      0 192.168.100.101:9989    0.0.0.0:*               LISTEN      32670/mmm_agentd

  • 启动monitor节点上的mysql-mmm服务并查看集群状态;

[root@monitor ~]# mkdir /var/run/mysql-mmm

[root@monitor ~]# vi /usr/lib/systemd/system/mysql-mmm-monitor.service

7 PIDFile=/var/run/mysql-mmm/mmm_mond.pid

[root@monitor ~]# systemctl daemon-reload

[root@monitor ~]# systemctl start mysql-mmm-monitor

[root@monitor ~]# netstat -utpln |grep mmm

tcp        0      0 127.0.0.1:9988          0.0.0.0:*               LISTEN      15266/mmm_mond

[root@monitor ~]# mmm_control show

# Warning: agent on host db4 is not reachable

db1(192.168.100.101) master/ONLINE. Roles: writer(192.168.100.250)

db2(192.168.100.102) master/ONLINE. Roles:

db3(192.168.100.103) slave/ONLINE. Roles: reader(192.168.100.251)

db4(192.168.100.104) slave/ONLINE. Roles: reader(192.168.100.252)

  • 客户端验证测试读写数据;

[root@master1 ~]# mysql -uroot -p123123

mysql> grant all on *.* to 'client'@'192.168.100.%' identified by '123123';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

[root@client ~]# yum -y install mysql

[root@client ~]# mysql -uclient -p123123 -h192.168.100.250

MySQL [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| linuxfan           |

| mysql              |

| performance_schema |

| test               |

+--------------------+

5 rows in set (0.00 sec)

MySQL [(none)]> exit

[root@client ~]# mysql -uclient -p123123 -h192.168.100.251

MySQL [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| linuxfan           |

| mysql              |

| performance_schema |

| test               |

+--------------------+

MySQL [(none)]> exit

  • master1主节点的mysql服务停止,测试集群状况;

[root@master1 ~]# systemctl stop mysqld

[root@monitor ~]# mmm_control show

# Warning: agent on host db4 is not reachable

db1(192.168.100.101) master/HARD_OFFLINE. Roles:

db2(192.168.100.102) master/ONLINE. Roles: writer(192.168.100.250)

db3(192.168.100.103) slave/ONLINE. Roles: reader(192.168.100.251)

db4(192.168.100.104) slave/ONLINE. Roles:

注解:

ONLINE. Roles表示在线节点;

HARD_OFFLINE表示ping不通并且(或者)mysql连接中断,会导致hard_offline状态;

admin_offline是手动下线的状态;

[root@monitor ~]# tail /var/log/mysql-mmm/mmm_mond.log

2018/08/10 07:44:37 FATAL State of host 'db1' changed from AWAITING_RECOVERY to ONLINE because of auto_set_online(60 seconds). It was in state AWAITING_RECOVERY for 61 seconds

2018/08/10 07:44:37 FATAL Agent on host 'db1' is reachable again

2018/08/10 07:50:28 FATAL Agent on host 'db1' is reachable again

2018/08/10 08:04:00 FATAL State of host 'db1' changed from ONLINE to HARD_OFFLINE (ping: OK, mysql: not OK)

[root@client ~]# mysql -uclient -p123123 -h192.168.100.250

MySQL [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| linuxfan           |

| mysql              |

| performance_schema |

| test               |

+--------------------+

MySQL [(none)]> exit

  • 关闭slave1slave2节点的写功能,使其处于只读状态;

[root@slave1 ~]# cat <<END >>/etc/my.cnf

read_only=1

END

[root@slave2 ~]# cat <<END >>/etc/my.cnf

read_only=1

END

注解:

read_only=1         ##开启数据库服务的只读服务,注意只有低于super权限的普通用户才会受此限制;

  • 客户端访问测试slave节点是否可写;

[root@client ~]# mysql -uclient1 -p123123 -h192.168.100.250

MySQL [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| linuxfan           |

| mysql              |

| performance_schema |

| test               |

+--------------------+

MySQL [(none)]> create database linuxfan1;

Query OK, 1 row affected (0.01 sec)

MySQL [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| linuxfan           |

| linuxfan1          |

| mysql              |

| performance_schema |

| test               |

+--------------------+

MySQL [(none)]> exit

Bye

[root@client ~]# mysql -uclient1 -p123123 -h192.168.100.251

MySQL [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| linuxfan           |

| linuxfan1          |

| mysql              |

| performance_schema |

| test               |

+--------------------+

MySQL [(none)]> create database linuxfan2;

ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement

MySQL [(none)]> exit

Mysql-mmm高可用集群相关推荐

  1. mysql vip_MySQL高可用集群的VIP切换

    一.目的 实现在mysql高可用集群的VIP切换,不涉及数据补偿 二.基础环境 python3.0+ 三.具体三大部分 1.启动条件检测检测集群是否down机 方式 select 1 检测主库是否有V ...

  2. keepalived+MHA实现mysql主从高可用集群

    本节索引 原理分析 实验环境准备 主从复制集群 安装MHA包 初始化MHA 配置Keepalived 故障出现 故障恢复 总结 一 原理分析 1 MHA简介: MHA(Master High Avai ...

  3. MySQL数据库高可用集群搭建-PXC集群部署

    Percona XtraDB Cluster(下文简称PXC集群)提供了MySQL高可用的一种实现方法.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上. PXC原理描述: 分布式 ...

  4. MySQL MHA高可用集群部署及故障切换(图文详解)

    文章目录 MySQL MHA 一.MHA概念 1.MHA 的组成 2.MHA 的特点 二.搭建MySQL+MHA 实验思路 实验环境.安装包 1.所有服务器,关闭系统防火墙和安全机制 2.修改 mas ...

  5. Mysql+MHA高可用集群

    http://www.ttlsa.com/mysql/step-one-by-one-deploy-mysql-mha-cluster/ 转载于:https://www.cnblogs.com/cci ...

  6. nfs mysql_heatbeat-gui实现基于nfs的mysql高可用集群

    一.简述HA高可用集群 高可用集群就是当集群中的一个节点发生各种软硬件及人为故障时,集群中的其他节点能够自动接管故障节点的资源并向外提供服务.以实现减少业务中断时间,为用户提供更可靠,更高效的服务. ...

  7. keepalived vip mysql_mysql+keepalived高可用集群

    mysql+keepalived高可用集群 我们了解在LVS集群当中,LVS是整个机群的唯一入口!如果LVS出现故障的话,那么整个集群都将无法访问!像这种重要的服务器只有一台服务器在工作的情况,如果出 ...

  8. 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 第十八章 Linux集群 18.1 集群介绍 Linux集群根据功能划分为两大类:高可用和负载均衡. 高可用集群 高可用集群通 ...

  9. 18.3/18.4/18.5 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 用keepalived配置高可用集群 准备两台机器130和132,130作为master,132作为backup 两台机器都执 ...

  10. mysql高可用方案_MySQL高可用集群方案

    一.Mysql高可用解决方案 方案一:共享存储 一般共享存储采用比较多的是 SAN/NAS 方案. 方案二:操作系统实时数据块复制 这个方案的典型场景是 DRBD,DRBD架构(MySQL+DRBD+ ...

最新文章

  1. PTA 基础编程题目集 7-24 约分最简分式 C语言
  2. Collections接口下的Comparetor类和Comparable接口排序
  3. go git 安装配置与使用 (windows 7 64bit)
  4. C#基础之 集合-队列
  5. 1.Vue 安装与简单使用
  6. mysql and 优化_MySQL 优化(六)
  7. 面试精讲之面试考点及大厂真题 - 分布式专栏 15 如何解决消息重复,保证消息顺序问题
  8. java corba_Java编写CORBA的一个简单例子(CORBA入门)
  9. mysql 联合索引的命中规则_可能是全网最好的MySQL重要知识点/面试题总结
  10. cocos2d-x学习笔记番外篇05:如何快速屏蔽触摸
  11. 编译Qtopia2.2.0
  12. 程序员须学计算机语言,IT程序员入门必须要学会的是什么?
  13. 1232_使用SCons实现WindRiver Diab编译器的命令行自动化编译环境
  14. C语言公交车线路信息查询系统
  15. Songtaste,酷到不行的音乐网站
  16. 4个方面告诉你Stimulsoft.Drawing的作用和使用方式|附下载链接
  17. 支付宝指纹服务器暂时用不了,解决支付宝指纹验证失效的问题
  18. 中国人民银行清算总中心CDA业务数据分析师培训正式开课
  19. 远程计算机不接受连接 smb,该设备或资源(192.168.1.100)未设置为接受端口“文件和打印机共享(SMB)̶ - Microsoft Community...
  20. 有哪些布局精心、长久的骗局?

热门文章

  1. flash读写导致死机问题分析
  2. 被谷歌出卖定位信息成“嫌疑犯”,花了大价钱才避免窦娥冤 | 一个自行车爱好者自述...
  3. 服务器微信了早上好,微信早晨好问候语句动态图片 早上好发给朋友的微信早安问候语简短...
  4. 传统文化,互联网时代的创业“传家之宝”
  5. 一年卖出20.4亿颗图像传感器,这家公司上市首日股价大涨145%
  6. Microbiome:微生物组名词定义
  7. USGS上下载的Landsat数据ENVI无法正常打开解决方法
  8. # 7-3 二分法求多项式单根
  9. Python的日志输出
  10. Linux--入门必学指令【详细拓展】