mysql数据库数据同步/主从复制的配置方法

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

如果有多台mysql数据库服务器需要需要做数据同步,或者读写分离的时候。就需要做一个数据库的主从复制,操作起来也比较简单。
如下:
主服务器x.x.x.233
从服务器x.x.x.234

首先需要在主数据库配置一下my.cnf
开启binlog增加serverid
server-id                       = 1
log-bin                        = bin-log

重启服务后生效

登陆数据库

1 #mysql -uroot -p

创建一个用户台tmpcopy,密码为mysq,并授权这个用户可以从x.x.x.234这个IP以replication的权限登陆

1 mysq> update mysql.user set user='tmpcopy' where password=password("mysql");
2 Query OK, 1 row affected (0.48 sec)
3 Rows matched: 1  Changed: 1  Warnings: 0
4  
5 mysq> flush privileges;
6 Query OK, 0 rows affected (0.03 sec)
7  
8 mysq> grant replication slave on *.* to tmpcopy@x.x.x.234 identified by 'mysql';
9 Query OK, 0 rows affected (0.06 sec)

锁住主服务器的数据写入(防止下面记录bonlog的位置后,产生新的数据)

1 mysql>flush tables with read lock;

然后查看一下主服务器的状态

1 mysq> show master status;
2 +----------------+----------+--------------+------------------+
3 | File           | Position | Binlog_Do_DB | Binlog_Ignore_DB |
4 +----------------+----------+--------------+------------------+
5 | bin-log.000001 |    41582 |              |                  |
6 +----------------+----------+--------------+------------------+

当前的binlog文件是bin-log.000001,位置是41582

这时候需要手工做一次同步,让主服务器和从服务器数据保持一致。
复制datadir或者从主服务器mysqldump导出sql文件再导入从服务器,这里不再累赘。

同步后目前两台服务器数据是一致的
然后配置一下从服务器的my.cnf
增加server-id=2
然后重启服务,登陆
切换从服务器的master,并配置当前数据所处的binlog文件以及位置

1 mysq> change master to master_host='x.x.x.1',master_user='tmpcopy',master_password='mysql',master_log_file='bin-log.000001',master_log_pos=41582;
2 Query OK, 0 rows affected (0.01 sec)

启动主从

1 mysq> start slave;
2 Query OK, 0 rows affected (0.00 sec)

查看一下从服务器的状态

01 mysq> show slave status\G
02 *************************** 1. row ***************************
03 Slave_IO_State: Waiting for master to send event
04 Master_Host: x.x.x.233
05 Master_User: tmpcopy
06 Master_Port: 3306
07 Connect_Retry: 60
08 Master_Log_File: bin-log.000001
09 Read_Master_Log_Pos: 98925
10 Relay_Log_File: mysqld-relay-bin.000002
11 Relay_Log_Pos: 57594
12 Relay_Master_Log_File: bin-log.000001
13 Slave_IO_Running: Yes
14 Slave_SQL_Running: Yes
15 Replicate_Do_DB:
16 Replicate_Ignore_DB:
17 Replicate_Do_Table:
18 Replicate_Ignore_Table:
19 Replicate_Wild_Do_Table:
20 Replicate_Wild_Ignore_Table:
21 Last_Errno: 0
22 Last_Error:
23 Skip_Counter: 0
24 Exec_Master_Log_Pos: 98925
25 Relay_Log_Space: 57751
26 Until_Condition: None
27 Until_Log_File:
28 Until_Log_Pos: 0
29 Master_SSL_Allowed: No
30 Master_SSL_CA_File:
31 Master_SSL_CA_Path:
32 Master_SSL_Cert:
33 Master_SSL_Cipher:
34 Master_SSL_Key:
35 Seconds_Behind_Master: 0
36 Master_SSL_Verify_Server_Cert: No
37 Last_IO_Errno: 0
38 Last_IO_Error:
39 Last_SQL_Errno: 0
40 Last_SQL_Error:
41 Replicate_Ignore_Server_Ids:
42 Master_Server_Id: 1
43 1 row in set (0.01 sec)

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两个状态运行了就已经配置完成了

测试一下:
创建数据库testdb

1 mysq> create database testdb;
2 Query OK, 1 row affected (0.00 sec)

选择数据库testdb并创建表test_tables以及两个字段id和test

1 mysq> use testdb;
2 Database changed
3 mysq> create table test_table (id int(3),test char (10));
4 Query OK, 0 rows affected (0.01 sec)

插入数据

1 mysq> insert test_table values('1','test-data');
2 Query OK, 1 row affected (0.01 sec)

我们再到从服务器看一下:

01 mysq> show databases;
02 +--------------------+
03 | Database           |
04 +--------------------+
05 | test               |
06 | testdb             |
07 | txt                |
08 +--------------------+
09 15 rows in set (0.08 sec)mysq> use testdb;
10 Database changed
11 mysq> select * from test_table;
12 +------+-----------+
13 | id   | test      |
14 +------+-----------+
15 |    1 | test-data |
16 +------+-----------+
17 1 row in set (0.00 sec)
18  
19 mysq>

新创建的数据库,表,表内的数据都已经同步了。
主从复制完成

如果需要一主多从,从服务器的配置再到别的服务器上配置一个不通的server-id重复操作一次即可。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
2月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
338 93
|
5月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
228 1
|
5月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
1012 1
|
2月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
396 7
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
528 5
|
3月前
|
存储 关系型数据库 MySQL
MySQL数据库中进行日期比较的多种方法介绍。
以上方法提供了灵活多样地处理和对比MySQL数据库中存储地不同格式地日子信息方式。根据实际需求选择适当方式能够有效执行所需操作并保证性能优化。
423 10
|
4月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
243 11
|
5月前
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
376 3
Jasypt加密数据库配置信息
|
4月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
428 0
|
2月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
126 3

热门文章

最新文章

推荐镜像

更多
下一篇
oss云网关配置