`

我的mysql主从复制配置方法

 
阅读更多

server-id我用了IP的最后一个数字。日志最大512MB,删除30天以前的记录,可以根据实际环境自由调整。

第一步:

主mysql my.cnf配置:

写道
server-id = 228
log-bin=mysql-bin
expire_logs_days = 30

 

 

连接主数据库:

mysql -uroot -pxxxxxxxx

GRANT REPLICATION SLAVE ON *.* to 'sync_xxx'@'%' identified by 'xxxxxxxx';

flush privileges;

查看权限:select * from user where user = 'sync_xxx';

可以看到Repl_slave_priv项对就的值为Y。

 

 

 第二步:

从数据库配置my.cnf并重启:

写道
server-id = 220
log-bin=mysql-bin
relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 1
replicate-wild-ignore-table =mysql.%
replicate-wild-ignore-table =test.%
replicate-wild-ignore-table =log.%
replicate-wild-ignore-table =information_schema.%
replicate-wild-ignore-table =performance_schema.%

 

 

第三步,也是最重要最要紧的一步,要保证两个数据库数据完全一致,必须停掉主库的web服务,然后dump数据,然后启动主数据库,查看日志状态,因为这份备份的数据导入从库,日志状态配置到从库,可以保证从库数据和主库完全一致。

 

此时必须保证两个数据库都没有读写操作(断开web等写数据库的服务)。

dump主数据库数据(如果数据太大不能dump,可以停止掉mysql,把整个数据目录拷贝过去。),然后查看日志状态:

1、连接数据库:

查看日志状态:show master status;看到如下信息。

mysql> show master status;

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

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000003 |     1230 |              |                  |

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

 

1 row in set (0.00 sec)

有了备份文件,有了备份文件以后没有进行任何写操作的主数据库的master状态,那么主数据库所在服务器的web服务就可以恢复了,因为从库导入了相同数据,且可以配置这个日志起点。 

 

主库导出的数据导入到从数据库。

连接到从数据库,执行:注意:mysql-bin.000002来自查看主库状态得到的文件名字段File,MASTER_LOG_POS是Position字段。

CHANGE MASTER TO
MASTER_HOST='192.168.1.228',
MASTER_USER='xxxxx',
MASTER_PASSWORD='xxxxxx.',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=1230,
MASTER_CONNECT_RETRY=10;
执行:
start slave;
 
查看从数据库状态:show slave status\G;
 
 
配置中已经设置从数据库为只读,防止从数据库写入任何数据,检查一下:
mysql> show global variables like 'read_only'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | read_only | ON | +---------------+-------+ 1 row in set (0.01 sec)
 
这里要注意,虽然设置了只读,但root用户仍然有权限写入数据,所以所有写数据库的服务都不可以用root用户来连接,另外,如果创建用户的时候,是如下方法,也会导致创建了拥有supper权限的root类用户:
 

grant all privileges on *.* to username@127.0.0.1 identified by 'password';

flush privileges;

相当于创建了另一个超级用户!!!

所以,创建用户只能用如下方法:

grant all privileges on db_name.* to username@127.0.0.1 identified by 'password';

flush privileges;

验证设置只读成功的方法:

连接mysql数据库

更新一条数据看看能不能成功。

mysql> update account set nick='xxx';

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

 

主从配置完毕,去主库变更一个数据,然后从库执行sql查询看看有没有随之变化吧,如果变化了,就启动主从服务器上的web服务即可。

 

 

 主从配置的作用主要是做到双机热备,但对外提供服务的只有主数据库,当然,从数据库可用于数据读取,但绝对不能有写入操作,否则从数据库数据是不会同步到主数据库中的,而且对于采用自动递增id的情况,会导致从数据库因为添加了数据,而无法从主数据库从不过来(id重复的错误)。

如果主从数据库都要对外提供服务,则需要相互配置主从数据库,可以多台主机互为主从,但需要设置id的递增方法,见文章:

http://www.cnblogs.com/top5/archive/2009/04/15/1436399.html

分享到:
评论

相关推荐

    MySQL主从复制与读写分离.docx

    1. 实现 MySQL 主从复制:打开三台 MySQL 服务器,配置相应 IP,实现时间同步。 2. 配置主服务器:配置主服务器的配置文件,添加授权用户,查看日志信息。 3. 配置从服务器:配置从服务器的配置文件,在从服务器中...

    使用keepalived实现对mysql主从复制的主备自动切换.docx

    "使用keepalived实现对mysql主从复制的主备自动切换" 本文主要讲解如何使用keepalived实现对mysql主从复制的主备自动切换。keepalived是一款高可用性解决方案,可以实现虚拟IP的管理和服务监控,在mysql主从复制...

    MySQL 主从复制模式全面实践

    MySQL主从复制模式是数据库领域内一种重要的数据同步机制,它能够让一台主数据库服务器(master)的数据实时复制到一个或多个从数据库服务器(slave)上。这种机制在数据库的高可用性、数据备份、读写分离以及负载...

    mysql 主从复制环境搭建

    在 Windows 环境下,搭建 MySQL 主从复制功能需要准备系统环境、安装 MySQL 服务、配置主从复制等步骤。 步骤一:准备系统环境 1. 准备一台 PC,安装 Windows XP 32 位操作系统。 2. 安装 MySQL 5.0。 步骤二...

    MySQL主从复制搭建从入门到掌握

    ### MySQL主从复制搭建知识点详解 #### 一、MySQL主从复制概述 MySQL主从复制是一种数据同步机制,它能够将一个MySQL服务器(主服务器)的数据自动同步到一个或多个MySQL服务器(从服务器)。这种机制不仅可以提高...

    SpringBoot第 12 讲:SpringBoot+MySQL主从复制、读写分离

    总的来说,SpringBoot与MySQL的主从复制和读写分离是企业级应用中常见的数据库架构设计,通过合理配置和优化,可以显著提高系统的稳定性和响应速度。通过学习和实践这些知识,开发者能够更好地构建可扩展、高可用的...

    MySQL主从复制.docx

    MySQL 主从复制是指在一个 MySQL 数据库集群中,通过配置将一台或多台 MySQL 服务器定义为主服务器(Master),其余服务器定义为从服务器(Slave)。主服务器负责接收客户端的写入请求,而从服务器则主要负责处理...

    MySQL主从复制模式全面实践

    配置MySQL主从复制涉及以下几个关键步骤: 1. 启用主节点的二进制日志功能。 2. 设置从节点的连接信息,如主机名、用户名和密码。 3. 在主节点上创建一个用于复制的专用用户。 4. 在从节点上配置复制,使用`CHANGE ...

    MYsql主从复制.docx

    "Mysql主从复制" Mysql主从复制是一种常用的数据库复制方式,旨在提高数据库的可用性、安全性和读取性能。在Mysql主从复制中,一个数据库服务器充当主服务器,其他服务器充当从服务器。主服务器负责写入数据,而从...

    MySQL主从复制配置文档

    以下是关于MySQL主从复制及其在Linux环境下编译安装配置的详细知识: 1. **主从复制的基本概念** - 主节点:执行所有写操作(INSERT、UPDATE、DELETE等)的服务器,其更改的数据会同步到从节点。 - 从节点:接收...

    MySQL主从复制搭建 需要用到的脚本

    这里提到的“MySQL主从复制搭建 需要用到的脚本”包含了搭建过程中的一些关键配置文件和自动化管理脚本。 1. `app1.cnf`:这是一个配置文件,通常包含MySQL服务器的特定设置,例如服务器ID、连接信息(如主机名、...

    mysql主从复制安装配置进阶.pptx

    MySQL 主从复制安装配置进阶 MySQL 主从复制是指将一个 MySQL 服务器(主服务器)中的数据实时同步到另一个 MySQL 服务器(从服务器)中,以提高数据库的高可用性和读写性能。在本文中,我们将详细介绍 MySQL 主从...

    MySQL主从复制与读写分离

    3. **复制配置**: 配置MySQL主从复制涉及创建复制用户、设置binlog格式、启动复制线程等步骤。配置完成后,主库会生成一个初始同步点,如使用`CHANGE MASTER TO`命令指定。 4. **故障转移**: 如果主库出现故障,...

    《深入理解MySQL主从原理32讲》推荐篇

    导读: 作者:高鹏(网名八怪),《深入理解...八怪写作风格很是严谨,几乎每篇都是从源码入手去剖析MySQL主从复制相关的知识点。 强烈推荐大家订阅本专栏 业界大咖推荐序 从2016年开始八怪(本名高鹏)经常向我请教一

Global site tag (gtag.js) - Google Analytics