在一台服务器上安装2个MYSQL服务,配置MYSQL服务的主从管理。
先安装主数据库,然后拷贝主数据库data文件夹里的mysql,performance_schema文件夹进E:/MySqlData/data1(从数据库的数据文件夹)。
(1)修改my.ini文件(主)。
添加
log-bin=E:/MySqlData/mysql-bin #日志文件的位置
server-id=1 #ID标识
binlog-do-db=databaseName #需要同步的数据库
binlog-ignore-db=mysql #不需要同步的数据库
binlog-ignore-db=test
expire_logs_days=1 #1天时间自动清理二进制日志
innodb_flush_log_at_trx_commit=1 #每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,0的效率最快,2的折中。但是安全性0的最低,详细看文档。在高版本SQL中用配置文件设置无效。只能用语句SET GLOBAL innodb_flush_log_at_trx_commit=0,查看用语句SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit%';
sync-binlog=1 #使binlog在每N次binlog写入后与硬盘 同步
port=3306 #主数据库的端口
basedir="D:/java/javasoft/MYSQL/" #数据库安装路径
datadir="E:/MySqlData/Data/" #数据库数据目录
修改my1.ini文件(从),此文件新建一个即可。为从MYSQL服务的配置文件。
[client]
port=3307
[mysql]
default-character-set=utf8
[mysqld]
server-id=2
#注意:master-xxx参数在MYSQL5.17以上版本就已经失去了作用,使用此处会出错。而且在从数据库的master.info权限高于配置文件,所以在低版本下也是第一次初始化时使用。
#master-host=127.0.0.1 #主机名
#master-user=XXX #主数据库用户名(添加数据库用户参考下面内容)
#master-password=XXX #主数据库密码
#master-port=3306 #端口
#master-connect-retry=60 #自动连接延时
#master-log-file='mysql-bin.000001' #读取的二进制文件
#master-log-pos=107 #二进制索引位置
replicate-do-db=databaseName #需要备份的数据库名
replicate-ignore-db=mysql #忽略的数据库
replicate-wild-ignore-table=databaseName.temp% #告诉从服务器线程不要复制更新指定表的任何语句,\转义
replicate-wild-ignore-table=databaseName.t\_temp\_%
replicate-wild-ignore-table=databaseName.tmp\_%
expire_logs_days=1 #二进制日志自动删除的天数
port=3307 #端口和主的不一样
basedir="D:/java/javasoft/MYSQL/"
datadir="E:/MySqlData/data1/" #数据目录也不一样
default-character-set=utf8 #其他配置
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=13M
table_cache=256
tmp_table_size=15M
thread_cache_size=8
因为在高版本的时候使用master-xxx等选项不可用,所以用 change to master 方法执行:
CHANGE MASTER TO MASTER_HOST='127.0.0.1',MASTER_USER='XXX',MASTER_PASSWORD='XXX',MASTER_PORT=3306,MASTER_CONNECT_RETRY=60,MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=107
然后执行在slave端执行:start slave 即可。
在master端执行的部分语句:
show master status //可查看master的二进制文件和索引位置
reset master //重置master
在slave端执行的部分语句:
show slave status //可查看slave的连接状态
start slave //启动slave
reset slave //重置slave
stop slave //停止slave
先停止slave-再重置slave-再启动slave,可以让slave同步master的二进制文件。
更多的主从语句请查看文档!
备注:
添加数据库用户:(更多权限查看文档):
GRANT REPLICATION SLAVE ON *.* TO '用户名'@'localhost' IDENTIFIED BY '密码'
添加MYSQL服务进windows服务里的dos命令语句:
D:\java\javasoft\MYSQL\bin\mysqld --install serverName --defaults-file=d:\java\javasoft\MYSQL\my.ini
删除服务的命令:
sc delete serverName
先启动主数据库的服务,再启动从数据库的服务,测试即可。
补充:
查看变量:SHOW VARIABLES LIKE 'sync_binlog'
修改变量:SET GLOBAL sync_binlog=1
数据提交方式:
innodb_flush_log_at_trx_commit=0 更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。
innodb_flush_log_at_trx_commit=1 每次自动提交,安全性高,i/o压力大
innodb_flush_log_at_trx_commit=2(推荐) 每秒自动提交,安全性略有影响,i/o承载强。
日志同步:
Sync-binlog=1 每条自动更新,安全性高,i/o压力大
Sync-binlog=0 (推荐)根据缓存设置情况自动更新,存在丢失数据和同步延迟风险,i/o承载力强
分享到:
相关推荐
#### 一、为什么使用MySQL主从配置? 在现代数据库系统中,随着业务规模的不断扩大和用户数量的激增,单一数据库服务器往往难以满足高性能和高可用性的需求。为了提高系统的整体性能和可靠性,采用MySQL主从配置...
mysql linix 主备同步 写数据库 读数据库
根据提供的文档内容,我们可以整理出关于 MySQL 主从配置的关键知识点,包括配置的步骤、注意事项以及具体的操作细节等。 ### MySQL 主从配置知识点 #### 一、概览 MySQL 的主从配置是一种常见的高可用性和数据...
MySQL主从配置是在数据库集群中实现数据冗余和负载均衡的一种常见方法。在Linux环境下,这一过程包括多个步骤,确保主服务器的数据能够实时地、安全地同步到从服务器。以下是基于Linux的MySQL主从配置的详细步骤: ...
MySQL主从配置是一种常见的数据库高可用性和数据冗余解决方案,它允许数据在多个服务器之间同步,以确保数据的安全性并提高系统性能。在本文中,我们将探讨如何在Mac Pro和Windows虚拟机环境下进行MySQL主从配置。 ...
#### 一、MySQL主从同步基本流程 在MySQL中,主从同步是一种常见的数据复制机制,用于实现数据的高可用性和负载均衡。其基本流程主要包括以下几个步骤: 1. **Master端**:在Master服务器上,每当有数据更改操作时...
完成上述步骤后,你的MySQL主从数据库同步配置就完成了。主服务器的任何新增或更新数据都会实时反映到从服务器上,从而实现了数据的实时复制和高可用性。在实际环境中,根据具体需求,可能还需要配置多个从服务器,...
在实现 Redis 主从配置和自动切换时,需要注意以下几点:设置 VIP 需要在同一网段内;在 Master 和 Slave 上都需要开启本地化策略,否则在互相自动切换的过程中,未开启本地化的一方会将另一方的数据清空,造成数据...
### MySQL主从延时优化详解 #### 一、MySQL主从复制原理及延时原因 在互联网技术领域中,MySQL数据库作为重要的数据存储系统之一,其主从复制机制被广泛应用于实现读写分离、数据备份等多种场景。但在数据量庞大且...
MySQL主从复制是一种常见的数据库高可用和负载均衡解决方案,它允许数据从一个主服务器(Master)实时同步到一个或多个从服务器(Slave)。这种架构对于线上环境尤其重要,因为它可以提供以下关键优势: 1. **读写...
### MySQL主从同步原理、问题、解决方案与应用详解 #### 一、MySQL主从同步基本流程 MySQL的主从同步机制是一种数据复制技术,用于在多个数据库服务器间保持数据的一致性。它允许数据从主服务器(Master)自动复制...
MySQL主从同步是一种数据库复制技术,它允许数据从一个服务器(主服务器)实时地复制到一个或多个其他服务器(从服务器)。这一特性对于构建高可用性、负载均衡和数据安全的系统至关重要。以下是对MySQL主从同步的...
MySQL主从架构是一种常见的数据库高可用性和负载均衡解决方案,它通过数据复制技术使得一台服务器(主服务器)的数据能够实时同步到另一台或多台服务器(从服务器)。这种架构提供了以下主要优势: 1. 故障切换:当...
MySQL 主从复制是一种常见的数据库高可用性和数据冗余策略,允许数据从一个主数据库服务器(Master)实时同步到一个或多个从服务器(Slave)。本文主要介绍如何在Linux环境下安装MySQL并配置主从复制。 首先,安装...
### MySQL 5.7 安装到主从配置到生产环境高可用 MHA 部署 #### 一、MySQL 分支与版本介绍 MySQL 是一个广泛使用的开源关系型数据库管理系统,由于其开源特性,衍生出了多种兼容版本,主要包括: 1. **MariaDB**:...
MySQL主从架构是一种常见的数据库高可用性和负载均衡解决方案,它主要包含以下知识点: 1. **主从架构的优势**: - 高可用性:当主服务器出现故障时,可以通过快速切换到从服务器来保证服务的连续性。 - 负载均衡...
以下是对MySQL主从复制原理、作用、实现方式以及实践操作的详细说明。 1. 原理: - 主服务器在执行写操作时,会将这些操作记录在二进制日志(binlog)中。binlog记录了所有改变数据库状态的语句。 - 从服务器会...
本文将详细介绍在Linux环境下,如何使用Shell脚本检查MySQL主从状态,并在发现异常时发送邮件警告。 首先,我们需要了解如何判断MySQL服务是否正常运行。可以通过检查MySQL服务端口(通常是3306端口)的监听状态来...