您的位置:首页 > 博客中心 > 数据库 >

MySQL的Master/Slave集群安装和配置

时间:2022-03-13 22:58

本文讲述MySQL的Master/Slave集群安装和配置,安装的版本是最新的稳定版本GA 5.6.19。

为了支持有限的HA,我们使用Master/Slave简单的读写分离集群。有限的HA是指当Master不可用时,数据不会丢失,但在Master宕机的情况下是不可写的,必须手工处理故障。如果要支持更高的可用性,可以使用两台Master来做热切换。

Master和Slave的MySQL安装是相同的,只是my.cnf的配置不同,需要配置二进制日志文件复制。

没有特殊说明,命名中带#的为root用户操作,带$的为mysql Linux用户的操作。

安装准备

1. 在安装MySQL前,需要确认下面的系统软件已经安装在Linux中。

软件名称

软件描述

gcc-4.4.7

编程语言编译器

gcc-c++-4.4.7

C++语言编译器

cmake-2.6.4-5

跨平台的开源构建系统

ncurses-devel-5.7-3.20090208

控制打印控制台屏幕

2. 创建mysql Linux用户

# groupadd mysql

# useradd -g mysql mysql

# passwd mysql

3. 准备安装目录

创建MySQL安装目录,并赋权限给mysql用户:

# mkdir /usr/local/mysql-5.6.19

# chown mysql:mysql /usr/local/mysql-5.6.19

# chmod -R 770 /usr/local/mysql-5.6.19

4. 创建数据存储目录:

# mkdir /data

# mkdir /data/mysql

# chown mysql:mysql /data/mysql

5. 授权MySQL解压源码目录/usr/local/src目录的可执行权限给所有用户:

# chmod -R 757 /usr/local/src

安装MySQL

1. 解压缩安装包:

$ cd /usr/local/src

$ tar -xzvf mysql-5.6.19.tar.gz

2. 配置MySQL编译参数

$ cd /usr/local/src/mysql-5.6.19

$ cmake . -DCMAKE_INSTALL_preFIX=\

       -DMYSQL_DATADIR=$MYSQL_DATA_PATH\

       -DSYSCONFDIR=/usr/local/mysql-5.6.19/conf\

       -DDEFAULT_CHARSET=utf8\

       -DDEFAULT_COLLATION=utf8_general_ci\

       -DWITH_READLINE=1\

       =1\

=1 \

=1 \

=1

备注:

-DCMAKE_INSTALL_preFIX: 配置MySQL的安装目录。

-DMYSQL_DATADIR: 配置MySQL的数据目录。

-DSYSCONFDIR:  配置MySQL的配置文件目录。

-DDEFAULT_CHARSET: 默认字符集。

-DDEFAULT_COLLATION:设定默认语言的排序规则。

-DWITH_READLINE:支持批量导入mysql数据。

-DWITH_INNOBASE_STORAGE_ENGINE:使用INNOBASE存储引擎。

-DWITH_ARCHIVE_STORAGE_ENGINE:常应用于日志记录和聚合分析,不支持索引。

-DWITH_BLACKHOLE_STORAGE_ENGINE:黑洞存储引擎。

-DWITH_PERFSCHEMA_STORAGE_ENGINE:性能模式引擎。

3. 执行make

$ make

$ make install

4. 修改myql用户的环境变量,增加MYSQL_HOME,并把bin加到PATH:

$ vi ~/.bash_profile

3.

在另外一个会话中在Master上执行:

$ mysqldump -u root-p --all-databases --master-data > data_dump.sql

执行后,保存在当前目录中。

4. 释放Master上的读锁

在获取读锁的会话中,执行释放锁命令:

mysql> UNLOCK TABLES;

5. 导入dump数据到Slave中

通过scp拷贝data_dump.sql到Slave的机器上。

$ scp data_dump.sqlmysql@<ip of slave>:/home/mysql

在Slave上通过下面的命令导入到Slave的MySQL中。

$ mysql –u root -p

source data_dump.sql;

6. 配置Master和Slave之间的复制

mysql> ‘,

MASTER_USER=‘repl_user‘,

MASTER_PASSWORD=‘secret‘,

MASTER_PORT = 3306,

MASTER_LOG_FILE=‘master-bin.000003‘,

MASTER_LOG_POS=881;

上面的MASTER_LOG_FILE和MASTER_LOG_POS需要配置6.2中查询到的信息。<ipor hostame of master>是Master的IP或主机名。

启动Slave:

mysql> START SLAVE;

7. 验证Master和Slave的状态

在Master上执行:

mysql> SHOW MASTER STATUS;

gxlsystem.com,布布扣

在Slave上执行:

mysql> SHOW SLAVE STATUS;

gxlsystem.com,布布扣

上面信息显示没有任何错误,Slave_IO_State信息为‘Waitigfor master to send event’,说明复制连接配置OK。


至此,两个MySQL的Master/Slave模式的集群已经部署成功,可以在Master上执行数据更新操作,发现可以正常复制到Slave上。

热门排行

今日推荐

热门手游