主(master_mysql): 172.17.0.2
从(slave_mysql): 172.17.0.3
#主库配置
$ vim /etc/my.cnf
server-id=1 #设置主服务器的ID
sync_binlog=1 #开启binlog日志同步功能
log-bin=mysql-bin #binlog日志文件名
binlog-do-db=task #只同步task库(如果没有此项,表示同步所有的库)
#配置完后,重启主库的mysql
$ systemctl restart mysqld.service
#登录mysql
$ mysql -u root -p
Enter password:
#授权给从数据库服务器172.17.0.3,用户名forslave,密码123456
mysql> grant replication slave on *.* to forslave@172.17.0.3 identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
#查看主库的状态 File,Position 这两个值很有用,要放到slave配置中
mysql> show master status;
+----------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 602 | task | | |
+----------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
#配置从库服务器
$ vim /etc/my.cnf
server-id=2
sync_binlog=1
log-bin=mysql-bin
#配置完后,重启从库的mysql
$ systemctl restart mysqld.service
#登录mysql
$ mysql -u root -p
Enter password:
mysql> change master to master_host='172.17.0.2', master_user='forslave',master_password='123456', master_log_file='mysql-bin.000001',master_log_pos=602;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
#开启从库(stop slave:关闭从库)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
#Slave_IO_Running,Slave_SQL_Running 都为Yes的时候表示配置成功
mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.17.0.2
Master_User: forslave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 602
Relay_Log_File: b9139c7ecf61-relay-bin.000001
Relay_Log_Pos: 324
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
..............................
#验证主从
进入主数据库服务器,在task中某张表中插入一条数据,然后到从数据库服务器中查看是否含有刚刚插入的数据。
问题1:
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
解决:
主从数据目录(/var/lib/mysql/auto.cnf)都有一个auto.cnf文件,里面记录的server-uuid不能相同,把从服务器的此文件删除,并重启服务器。
产生以上错误的原因是我的环境是基于docker,同一个镜像启动了两个容器,导致两个容器内的mysql配置完全相同。
相关推荐
MySQL 主从同步配置过程 一、 MySQL 主从同步配置概述 MySQL 主从同步配置是指将 MySQL 数据库的数据从一台服务器(主服务器)同步到另一台服务器(从服务器)的过程。这种配置可以实现数据的高可用性和灾难恢复,...
淘宝资深工程师丁奇在2009年的分享中详细介绍了MySQL主从同步的原理、配置、优化以及在实际应用中遇到的问题和解决方案。 首先,MySQL主从同步的基本概念指的是在一个数据库实例(主库)上对数据进行修改操作后,...
MySQL主从同步配置和实现 MySQL主从同步是指将一个MySQL服务器的数据实时地复制到另一个或多个服务器上,以实现数据的高可用性和灾难恢复。这种方式可以实现数据的热备援、读写分离、负载均衡等功能。 1. 案例 1:...
### Linux下MySQL主从同步配置详解 #### 一、引言 在数据库管理领域,MySQL主从同步是一种常见的数据复制技术,它可以帮助我们构建高可用性和数据冗余性,从而提高系统的稳定性和可靠性。本文将详细介绍如何在Linux...
Linux-Mysql 主从同步配置 本文将详细解释 Linux-Mysql 主从同步配置的步骤和知识点。 一、主服务器配置 1. 编辑数据库配置文件 my.cnf, 一般在/etc/目录下。 2. 在[mysqld]下面加入以下代码: * log-bin=mysql...
MySQL主从同步是一种常见的数据库高可用性和数据冗余策略,它允许数据在多个服务器之间实时复制,确保即使在一台服务器故障时,数据仍然可以被访问。以下是对搭建、修改和优化MySQL主从同步过程的详细解释: 1. **...
在Windows环境下,MySQL主从同步备份是一种常见的高可用性和数据冗余策略,确保数据的安全性和一致性。以下是详细步骤,适用于MySQL 5.0版本: 1. **创建备份账户**: 在主服务器A上,我们需要创建一个用于复制的...
MySQL主从同步是一种数据库复制技术,它允许一个MySQL服务器(主服务器)的数据被实时地复制到其他服务器(从服务器)上。这种同步可以确保数据的一致性,并在主服务器出现问题时提供故障转移的能力。实现主从同步的...
Mysql主从同步备份策略 五月 18th, 2009 at 17:30 - 3,803 views 环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2 一. MySQL主服务器配置 1.编辑配置文件/etc/my.cnf # ...
mysql主从同步检查脚本 。主要运用于日常maysql运行主从同步状态检查。
MySQL主从同步是数据库高可用性和数据一致性的关键机制,特别是在大型分布式系统中。这个名为"MySql主从同步监控程序源码"的项目是用C#语言开发的,旨在帮助管理员实时监控MySQL数据库的主从复制状态,确保数据在...
MySQL 主从同步和一台服务器两个 MySQL MySQL 主从同步是指将一个 MySQL 服务器的数据实时地复制到另一个 MySQL 服务器上,以提高数据库的高可用性和灾难恢复能力。在本文中,我们将详细介绍如何在一台服务器上配置...
MySQL主从同步是一种数据库复制技术,它允许数据从一个MySQL服务器(称为“主服务器”)实时复制到另一个或多个服务器(称为“从服务器”)。这种配置对于数据备份、负载均衡和高可用性至关重要。在Java开发中,了解...
MySQL 主从同步及 Canal 配置详解 MySQL 主从同步是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器上,以保证数据的一致性和高可用性。该技术主要基于 binlog 技术,下面将详细介绍 MySQL 主从同步的...
### Debian系统下MySQL主从同步复制 在Debian系统中实现MySQL主从同步复制是一种常见的数据库高可用性和负载均衡策略。这种技术可以确保数据的安全性并提高系统的整体性能。接下来,我们将详细介绍如何在Debian环境...
超详细MySQL主从配置和主主同步总结。。。。。。。。。
dble配置mysql主从同步