一、准备

1、两个数据库版本最好保持一致(因为官方就是这么建议的,主要的问题就是考虑到兼容性问题)

2、连个数据库的数据保持一致,若不一致,可手动调整,比如A比B多一个库,那就将这个库导入到B库,达到一致

A数据库:182.92.172.80

B数据库:123.57.44.85

二、操作

  A数据库

1、开启binlog

[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=1 #设置server-id,不能一样

2、重启mysql,创建同于同步的用户账号

systemctl restart mysql

登陆数据库

mysql -u root -p

创建用户并授权:用户:test,密码:123456,ip:B主机的ip

create user 'test'@'123.57.44.85' identified by '123456';

分配权限

grant replication slave on *.* to 'test'@'123.57.44.85';
flush privileges;

锁表,禁止写入,当前窗口不能退出,这时候开启另一个终端继续操作

flush table with read lock;

3、新窗口操作,查看master状态,记录二进制文件名和位置

show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 1042 | | |
+------------------+----------+--------------+------------------+

4、将当前数据库导出,如果两个数据库不一致,手动调整

 mysqldump -u root -p --all-databases > alldb.sql

5、解锁查看binlog日志位置,如果没变化证明锁定成功。从库将从这个binlog日志开始恢复

unlock tables;
 show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 1042 | | |
+------------------+----------+--------------+------------------+

  B数据库操作

1、导入数据

mysql -u root -p < alldb.sql

2、修改配置文件

[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=2 #设置server-id,必须唯一

3、重启mysql,配置同步

systemctl restart mysql

需要A服务器主机名,登陆凭证,二进制文件名称和位置

change master to master_host='182.92.172.80',
-> master_user='test',
-> master_password='123456',
-> master_log_file='mysql-bin.000003',
-> master_log_pos=1024;
#master_log_pos位置最好在 mysql-bin.000003里面找,用下面这个命令
#mysqlbinlog mysql-bin.000003 > test.txt

4、开启slave,查看slave状态

start slave;
show slave status\G;

5、配置作为A的主

创建用户并授权:用户:test,密码:123456,ip:A主机的ip

create user 'test'@'182.92.172.80' identified by '123456';

分配权限

grant replication slave on *.* to 'test'@'182.92.172.80';
flush privileges;

这次不用锁表了,因为B在同步A数据的时候,已经一致了。

6、新窗口操作,查看master状态,记录二进制文件名和位置

show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 1042 | | |
+------------------+----------+--------------+------------------+

  A数据库操作

1、需要B服务器主机名,登陆凭证,二进制文件名和位置

change master to master_host='123.57.44.85',
-> master_user='test',
-> master_password='123456',
-> master_log_file='mysql-bin.000003',
-> master_log_pos=1024;
#master_log_pos位置最好在 mysql-bin.000003里面找,用下面这个命令
#mysqlbinlog mysql-bin.000003 > test.txt

2、开启查看slave状态

start slave;
show slave status\G;

MySQL 主主配置的更多相关文章

  1. mysql数据库主从及主主复制配置演示

    实验系统:CentOS 6.6_x86_64 实验前提:提前准备好编译环境,防火墙和selinux都关闭 实验说明:本实验共有2台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 实验拓 ...

  2. MySql数据库主主同步配置步骤

    测试环境:  192.168.1.192  192.168.1.193    mysql5.2     配置192服务器:  /usr/local/mysql/bin/mysql -uroot -p ...

  3. mysql主主复制(双主复制)配置步骤

    以前我们介绍的都是主从复制,这里给各位介绍一个双主复制了,下面都希望两个主服务器数据自动复制的话可参考一下此文章.   MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服务器的任何一台 ...

  4. mysql 主主复制(双主复制)+ 配置KEEPALIVED实现热备

    binlog-do-db和replicate-do-db表示需要同步的数据库 binlog-ignore-db和replicate-ignore-db表示不需要同步的数据库 云端服务器为master配 ...

  5. mysql的主从配置以及主主配置

    基础环境 系统:linuxmysql版本:5.5主服务器IP:192.168.1.101从服务器IP:192.168.1.102 1.主服务器(master)要打开二进制日志2.从服务器(slave) ...

  6. MySQL双主配置

    MySQL双主配置 准备环境:服务器操作系统为RHEL6.4 x86_64,为最小化安装.主机A和主机B均关闭防火墙和SELINUX ,IP地址分别为192.168.131.129和192.168.1 ...

  7. MySQL 主主同步配置和主从配置步骤

    ★预备知识 : 1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服 ...

  8. 配置mysql为主主复制步骤

    mysql版本:mysql-5.6.24-solaris10-sparc-64bit.tar 操作系统:solaris 11g u10 操作用户:使用非root进行操作安装,a路服务器ip地址为192 ...

  9. mysql主从配置主主配置

    一.     概述  MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步.主从模式.互相备份模式的功能.本文档主要阐述了如何在linux系 ...

  10. MYSQL 双主配置

    MYSQL1. 版本号:5.7.243. 部署方式:双主部署,两台机器即是主又是备 ,双向拷贝,可以同时写入.4. 安装部署路径: a) /home/softb) 配置路径 /etc/my.cnfc) ...

随机推荐

  1. ATOM中MARKDOWN的使用小结

    1.ctrl+shift+p ; 输入ssvvp ; 回车 2.输入markdown-preview进行安装 3.打开任意.md 文件 ; 按 ctrl-shift-m 进行预览

  2. 09-HTML-form标签

    <html> <head>  <title>form标签学习</title>  <meta charset="utf-8"/& ...

  3. chrome 开发者工具,查看元素 hover 样式

    在web开发中,浏览器开发者工具是我们常用的调试工具.我们经常会有这样的需求,就是查看元素的时候需要查看它的hover样式.相信有很多小伙伴都遇到过这样的情形,始终选不中hover后的元素状态.其实在 ...

  4. wap2app(二)-- 设置APP系统状态栏

    准备 工具:HBuilder 一.全屏设置,不显示系统状态栏 这里所说的系统状态栏就是包括了:信号.运营商.电量等信息手机屏幕最顶部信息. 全屏并非状态栏透明或变色,而是没有状态栏,也就是看不见电量. ...

  5. HDFS客户端的权限错误:Permission denied

    报错:Permission denied: user=root, access=WRITE, inode="hadoop":hadoop:supergroup:rwxr-xr-x ...

  6. mssql sqlserver 可以存储二进制数据的字段类型详解

    转自: http://www.maomao365.com/?p=6738 摘要: 下文将从数据库的数据类型着手,剖析在sqlserver数据库中可以存储二进制数据的数据类型,如下所示: mssql s ...

  7. MySQL8.0关于caching_sha2_password Plugin的一个Bug

    今天在调试使用ansible进行标准化安装MySQL8.0时,发现关于caching_sha2_password plugin的一个bug. 在搭建主从复制时,按照手册说明需要创建用户: create ...

  8. 极致精简的webservice集成例子

    极致精简的webservice例子   看了网上好多关于webservice的例子,基本上对初学者来说都是模棱两可云里雾里,现在,我将网上关于webservice的讲解提炼出来,通过一个最简单使用并且 ...

  9. python第一百一十一天 --Django 6 model 的相关操作

    创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db ...

  10. c/c++ 用前序和中序,或者中序和后序,创建二叉树

    c/c++ 用前序和中序,或者中序和后序,创建二叉树 用前序和中序创建二叉树 //用没有结束标记的char*, clr为前序,lcr为中序来创建树 //前序的第一个字符一定是root节点,然后去中序字 ...