- 为mysql的安装提供前提环境和初始化安装mysql
- 创建数据库目录
- # mkdir /mydata/data –pv
- 创建mysq用户
- # useradd -r mysql
- 修改权限
- # chown -R mysql.mysql /mydata/data/
- 使用mysql-5.5通用二进制包安装
- 解压mysql软件包
- # tar xf mysql-5.5.28-linux2.6-i686.tar.gz-C /usr/local/
- 创建连接,为了方便查看mysql的版本等信息
- # cd /usr/local/
- #ln –sv mysql-5.5.28-linux2.6-i686.tar.gzmysql
- 修改属主属组
- # cd mysql
- # chown -R root.mysql ./*
- 初始化数据库
- # scripts/mysql_install_db –user=mysql --datadir=/mydata/data/
- 提供配置文件
- # cp support-files/my-large.cnf /etc/my.cnf
- 提供服务脚本
- # cp support-files/mysql.server/etc/rc.d/init.d/mysqld
- 添加至服务列表
- # chkconfig --add mysqld
- # chkconfig --list mysqld
- # chkconfig mysqld on
- 编辑配置文件,提供数据目录
- # vim /etc/my.cnf
- # The MySQL server 修改mysqld服务器端的内容
- log-bin=master-bin 主服务器二进制日志文件前缀名
- log-bin-index=master-bin.index 索引文件
- innodb_file_per_table= 1 开启innodb的一表一个文件的设置
- server-id = 1 必须是唯一的
- datadir =/mydata/data 数据目录路径
- 启动mysql服务
- # servicemysqld start
- 为了便于下面的测试,设置环境变量
- # vim/etc/profile.d/mysql.sh
- export PATH=$PATH:/usr/local/mysql/bin
- 执行环境变量脚本,使其立即生效
- # . /etc/profile.d/mysql.sh
- 建立用户账户
- mysql> grant replication slave on *.* to 'chris'@'172.16.%.%' identified by 'work';
- 刷新数据使其生效
- mysql> flush privileges;
- 创建mysql数据库目录
- # mkdir /mydata/data –pv
- 创建mysql用户
- # useradd -r mysql
- 修改数据目录权限
- # chown -R mysql.mysql /mydata/data/
- 使用mysql-5.5通用二进制包安装mysql
- 解压mysql软件包
- # tar xf mysql-5.5.28-linux2.6-i686.tar.gz-C /usr/local/
- 创建连接,便于查看mysql的版本等信息
- # cd /usr/local/
- # ln –sv mysql-5.5.28-linux2.6-i686.tar.gzmysql
- 修改mysql属主属组
- # cd mysql
- # chown -R root.mysql ./*
- 初始化mysql数据库
- # scripts/mysql_install_db –user=mysql--datadir=/mydata/data/
- 提供mysql配置文件
- # cp support-files/my-large.cnf /etc/my.cnf
- 提供服务脚本
- # cp support-files/mysql.server /etc/init.d/mysqld
- 添加至服务列表
- # chkconfig --add mysqld
- 编辑配置文件
- # vim /etc/my.cnf
- # The MySQL server
- #log-bin=mysql-bin 禁用二进制日志,从服务器不需要二进制日志文件
- datadir = /mydata/data mysql的数据目录
- relay-log = relay-log 设置中继日志
- relay-log-index = relay-log.index 中继日志索引
- innodb_file_per_table = 1
- server-id = 2 id不要和主服务器的一样
- 设置环境变量
- # vim/etc/profile.d/mysql.sh
- export PATH=$PATH:/usr/local/mysql/bin
- 执行此脚本(导出环境变量)
- # . /etc/profile.d/mysql.sh
- 启动服务
- # service mysqld start
- mysql> show master status; #在Master上执行查看二进制文件
- 在从服务器上开启复制功能
- change master to master_host='172.16.7.1',master_user='chris',master_password='work',master_log_file='master-bin.000001',master_log_pos=407;
- 开启复制功能
- mysql>start slave;
- 安装插件:mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
- 启动模块:mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;
- 设置超时时间:mysql> SET GLOBAL rpl_semi_sync_master_timeout = 1000;
1
2
3
4
|
slave: 安装插件:msyql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so' ;
启动模块:mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1 ;
重启进程使其模块生效:mysql> STOP SLAVE IO_THREAD; START SLAVE IO_THREAD; |
- 在Master和Slave的my.cnf中编辑:
- # On Master
- [mysqld]
- rpl_semi_sync_master_enabled=1
- rpl_semi_sync_master_timeout=1000 #此单位是毫秒
- # On Slave
- [mysqld]
- rpl_semi_sync_slave_enabled=1
- master:
- mysql> CREATE DATABASE asyncdb;
- master> SHOW STATUS LIKE 'Rpl_semi_sync_master_yes_tx';
- slave> SHOW DATABASES;
- 其测试过程如下
- # 主服务器上
- [mysqld]
- server-id = 1
- log-bin = mysql-bin
- relay-log = relay-mysql
- relay-log-index = relay-mysql.index
- auto-increment-increment = 2 #每次跳两个数。
- auto-increment-offset = 1 #从1开始。
- [mysqld]
- server-id = 2
- log-bin = mysql-bin
- relay-log = relay-mysql
- relay-log-index = relay-mysql.index
- auto-increment-increment = 2
- auto-increment-offset = 2
- master:查看日志文件信息
- mysql> show master status;
- +------------------+----------+--------------+------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
- +------------------+----------+--------------+------------------+
- | mysql-bin.000001 | 107 | | |
- +------------------+----------+--------------+------------------+
- Slave:查看服务器日志文件信息
- mysql> show master status;
- +------------------+----------+--------------+------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
- +------------------+----------+--------------+------------------+
- | mysql-bin.000001 | 107 | | |
- +------------------+----------+--------------+------------------+
- 1 row in set (0.00 sec)
1
2
3
|
master: mysql> GRANT REPLICATION SLAVE ON *.* TO 'chrislee' @ '172.16.%.%' IDENTIFIED BY 'work' ;
mysql> flush privileges; |
- slave:
- mysql> GRANT REPLICATION SLAVE ON *.* TO 'chrisli'@'172.16.%.%' IDENTIFIED BY 'work';
- mysql> flush privileges
- server1
- mysql> CHANGE MASTER TO MASTER_HOST='172.16.7.2',MASTER_USER='chrisli',MASTER_PASSWORD='work',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=344;
- server2:
- mysql> CHANGE MASTER TO MASTER_HOST='172.16.7.1',MASTER_USER='chrislee',MASTER_PASSWORD='work',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=345;
相关推荐
MySQL复制技术的几种主要类型包括主从复制、半同步复制和主主复制,它们在数据库架构中扮演着重要的角色。下面将对这些复制技术进行详细解释。 首先,主从复制是最常见的复制方式,它涉及一个主服务器(Master)和...
CentOs7 下 Mysql 5.7 的下载安装和主从同步、双主多从配置详解 CentOs 7 是一个流行的 Linux 操作系统,而 Mysql 5.7 是一个广泛使用的关系型数据库管理系统。本文将详细介绍如何在 CentOs 7 下下载安装 Mysql 5.7...
### MySQL 主从与主主配置详解 #### 一、MySQL 主从配置 **1.1 配置主服务器** 为了实现MySQL的主从复制,首先需要配置主服务器。假设我们有两台服务器作为主服务器: - **主服务器 1 IP**: 192.168.0.1 - **主...
### 基于Mycat的MySQL主从读写分离配置详解与示例 #### 一、概述 在高并发的互联网应用场景下,单一数据库往往难以承受大量的读写请求,因此,采用主从架构实现读写分离是提高系统稳定性和响应速度的有效方法之一...
主从同步 在主数据库上,需要授予从数据库复制的权限,并查看主数据库的当前状态。可以使用以下命令: GRANT REPLICATION SLAVE ON *.* to 'root'@'192.168.109.132' identified by '123456'; show master status;...
根据不同的应用场景,MySQL支持多种复制模式,包括主从复制(master-slave replication)和主主复制(master-master replication)等。 本文档主要介绍在MySQL环境中管理和维护复制源服务器(通常称为“主服务器”...
- **主从复制**:实现主服务器上的数据变化实时同步到从服务器。 - **配置主服务器**:启用二进制日志,设置服务器ID等。 - **配置从服务器**:指定主服务器的信息。 ##### 6.5 使用MYSQLHOTCOPY进行备份和恢复 `...
MySQL的二进制日志(Binary Log,简称binlog)是数据库系统中至关重要的功能,主要用于数据恢复和主从同步。在本篇文章中,我们将深入探讨如何利用binlog进行数据恢复,以及binlog的基本配置和格式。 首先,当发生...
如果你的MySQL服务器是主服务器,且有从服务器在同步数据,那么在删除日志前,需要确保从服务器已经完全处理了要删除的日志中的所有事件。可以使用`SHOW SLAVE STATUS`命令检查从服务器的执行位置,确保不删除正在被...
13. **MySQL 主从同步**:Slave_IO_Running 线程是主从复制中监控主库 binlog 是否成功接收并写入中继日志的线程,因此选项 A 正确,而 B、C 和 D 描述错误,它们分别指的是回放 relay_log 的线程、备库上的线程以及...
8. **应用场景**:Canal广泛应用于实时数据同步、大数据分析、数据备份、数据库复制等领域,为企业的实时数据处理提供强大支持。 综上,"canal1.1.4集群安装文件.zip"是一个包含Canal集群所需全部组件的压缩包,其...
- **原理**:通过主服务器复制数据到一个或多个从服务器上。 - **配置**:在从服务器上配置 `slaveof` 选项指向主服务器。 - **用途**:提高系统的可用性和扩展读操作的能力。 ##### 8. Redis 集群 - **概念**:一...
线上环境中,主库应开启定时器,从库关闭以避免对从库性能的影响,因为Event触发的操作会被记录到binlog并进行主从同步。 2. 创建事件 创建Event的语法如下: ```sql CREATE EVENT [IF NOT EXISTS] event_name ON ...