Linux下指定mysql数据库数据配置主主同步的实例

 更新时间:2013年01月28日 19:36:22   作者:  
Linux下指定数据库数据配置主主同步的实例,有需要的朋友可以参考下

一、 概念:

① 数据库同步  (主从同步 --- 主数据库写的同时 往从服务器写数据)
② 数据库同步  (主主同步 --- 两台数据库服务器互相写数据)

二、 举例

主主数据库同步服务器配置
数据库服务器(A) 主数据库   IP:192.168.1.134
数据库服务器(B) 主数据库   IP:192.168.1.138
两台服务器同步的用户名为: bravedu    密码: brave123

一、主数据库操作设置(A):

① 创建同步用户名   允许连接的 用户IP地址  (非本机IP)

复制代码 代码如下:

grant replication slave on *.* to 'bravedu'@'192.168.1.%' identified by 'brave123';
flush privileges;

② 更改mysql配置文件
复制代码 代码如下:

[mysqld] 
server-id = 1 
log-bin=/www/mysql/binlog/binlog (路径要根据自己的安装设置)
binlog-do-db = dbname (要同步的数据库名)
binlog-ignore-db=mysql

#相对应主从数据库同步不同的地方
复制代码 代码如下:

log-slave-updates
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
replicate-do-db = dbname
replicate-ignore-db = mysql,information_schema

重启mysql服务器

③ 查看主数据库同步状态  IP: ***.134 

复制代码 代码如下:

mysql>flush tables with read lock; 
mysql>show master status\G
*************************** 1. row ***************************
File: mysql-bin.000001    (这里注意 设置从服务器的时候要用)
Position: 106             (这里注意设置从服务器的时候要用)
Binlog_Do_DB: dbname
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)

mysql>unlock tables;
*****主服务器到目前位置设置完毕*******


二、从数据库操作设置(B):

① 创建同步用户名

复制代码 代码如下:

grant replication slave on *.* to 'bravedu'@'192.168.1.%' identified by 'brave123';
flush privileges;

② 更改mysql配置文件
复制代码 代码如下:

[mysqld] 
server-id = 2 
log-bin=/www/mysql/binlog/binlog (路径要根据自己的安装设置)
binlog-do-db = dbname (要同步的数据库名)
binlog-ignore-db= mysql,information_schema
#相对于主从同步不同的地方
binlog-do-db = dbname
binlog-ignore-db=mysql
log-slave-updates
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2

重启mysql服务器

查看主数据库同步状态  IP: ***.138 

复制代码 代码如下:

mysql>flush tables with read lock; 
mysql>show master status\G
*************************** 1. row ***************************
File: mysql-bin.000005    (这里注意 设置从服务器的时候要用)
Position: 106             (这里注意设置从服务器的时候要用)
Binlog_Do_DB: dbname
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)
mysql>unlock tables;

③  指定主主数据库服务器同步指令
注:IP为主服务器的IP,用户名,密码,log_file,log_post 服务器互相统一
可能这块操作 需要先  解除锁表、停止数据库状态、在运行后 在启动状态
复制代码 代码如下:

mysql > stop  slave;
#设置192.168.1.138数据库服务器配置 那么host 配置文件信息 就是 134的信息
mysql > change master to master_host='192.168.1.134', master_user='bravedu', master_password='brave123', master_log_file='mysql-bin.000005', master_log_pos=106;
#设置192.168.1.134 数据库服务器配置 那么host 等配置文件信息 就是 134的信息
mysql > change master to master_host='192.168.1.138', master_user='bravedu', master_password='brave123', master_log_file='mysql-bin.000001', master_log_pos=106;
mysql > start slave;
mysql > unlock tables;

④ 查看主数据库同步状态  会出来很多信息 但是主要看这两个状态就行了 如果都是 yes 就可以了
复制代码 代码如下:

mysql>show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

至此,主主数据库同步成功配置完成。

相关文章

  • 在MySQL中使用序列的简单教程

    在MySQL中使用序列的简单教程

    这篇文章主要介绍了在MySQL中使用序列的简单教程,是MySQL入门学习中的基础知识,文中给出了基于PHP和Perl脚本的示例,需要的朋友可以参考下
    2015-05-05
  • 如何正确、安全地关闭MySQL

    如何正确、安全地关闭MySQL

    当需要停止或关闭MySQL实例时,很多人并不清楚如何做到正确、安全地关闭MySQL,会对数据的安全性和稳定性造成很大的威胁,本文将从多个方面详细阐述如何正确关闭MySQL,包括关闭MySQL的基本方法、关闭MySQL前的准备工作、优雅地关闭MySQL以及遇到MySQL无法正常关闭的情况
    2023-09-09
  • MySQL由浅入深探究存储过程

    MySQL由浅入深探究存储过程

    这篇文章主要介绍了MySQL存储过程,存储过程,也叫做存储程序,是一条或者多条SQL语句的集合,可以视为批量处理,但是其作用不仅仅局限于批量处理
    2022-11-11
  • MySQL中的流式查询及游标查询方式

    MySQL中的流式查询及游标查询方式

    这篇文章主要介绍了MySQL中的流式查询及游标查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • MySQL 数据库的基础知识

    MySQL 数据库的基础知识

    这篇文章主要介绍了MySQL 数据库的基础知识,它是一类更具体的可以管理数据的软件。但是实现数据库的这个软件,需要用到很多的数据结构,下面来看看文章是怎么具体介绍这个数据库的
    2021-12-12
  • MySQL多个字段拼接去重的实现示例

    MySQL多个字段拼接去重的实现示例

    在MySQL中,我们经常会遇到需要将多个字段进行拼接并去重的情况,本文就来介绍一下MySQL多个字段拼接去重的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • MySQL为什么临时表可以重名

    MySQL为什么临时表可以重名

    本文主要介绍了MySQL为什么临时表可以重名,有的人可能会认为,临时表就是内存表,其实是完全不同的,感兴趣的可以一起来了解一下
    2022-03-03
  • mysql日志文件之undo log和redo log

    mysql日志文件之undo log和redo log

    MySQL日志记录了MySQL数据库日常操作和错误信息,MySQL有不同类型的日志文件,下面这篇文章主要给大家介绍了关于mysql日志文件之undo log和redo log的相关资料,需要的朋友可以参考下
    2022-04-04
  • MySQL数据库InnoDB数据恢复工具的使用小结详解

    MySQL数据库InnoDB数据恢复工具的使用小结详解

    本篇文章是对MySQL数据库InnoDB数据恢复工具的使用进行了详细的总结与分析,需要的朋友参考下
    2013-06-06
  • MySQL里的found_row()与row_count()的解释及用法

    MySQL里的found_row()与row_count()的解释及用法

    MySQL中有两个函数来计算上一条语句影响了多少行,不同于SqlServer/Oracle,不要因为此方面的差异而引起功能问题
    2013-02-02

最新评论