mysql主从复制

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

mysql实现主从复制


实验环境:

server5:主

server6:从

server7:从

iptabls offselinux Disabled12345

安装mysql

*先查看是否有其它版本的,若有,则先卸载

[root@server5 ~]# rpm -qa | grep mysqlmysql-libs-5.1.71-1.el6.x86_64

[root@server5 ~]# rpm -e mysql-libs-5.1.71-1.el6.x86_64error: Failed dependencies:

   libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64

   libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64

   mysql-libs is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64

[root@server5 ~]# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64[root@server5 ~]# rpm -qa | grep mysql[root@server5 ~]# 1234567891011

*安装mysql

[root@server5 ~]# tar zxf mysql-5.7.17-1.el6.x86_64.rpm-bundle.tar gzip: stdin: not in gzip formattar: Child returned status 1tar: Error is not recoverable: exiting now

[root@server5 ~]# tar xf mysql-5.7.17-1.el6.x86_64.rpm-bundle.tar #注意顺序[root@server5 ~]# rpm -ivh mysql-community-common-5.7.17-1.el6.x86_64.rpm[root@server5 ~]# rpm -ivh mysql-community-libs-5.7.17-1.el6.x86_64.rpm [root@server5 ~]# rpm -ivh mysql-community-devel-5.7.17-1.el6.x86_64.rpm[root@server5 ~]# yum install libaio -y[root@server5 ~]# yum install numactl -y[root@server5 ~]# rpm -ivh mysql-community-client-5.7.17-1.el6.x86_64.rpm[root@server5 ~]# rpm -ivh mysql-community-server-5.7.17-1.el6.x86_64.rpmwarning: mysql-community-server-5.7.17-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYerror: Failed dependencies:

   /usr/bin/perl is needed by mysql-community-server-5.7.17-1.el6.x86_64

   perl(File::Path) is needed by mysql-community-server-5.7.17-1.el6.x86_64

   perl(Getopt::Long) is needed by mysql-community-server-5.7.17-1.el6.x86_64

   perl(POSIX) is needed by mysql-community-server-5.7.17-1.el6.x86_64

   perl(strict) is needed by mysql-community-server-5.7.17-1.el6.x86_64

[root@server5 ~]# yum install perl  -y[root@server5 ~]# rpm -ivh mysql-community-server-5.7.17-1.el6.x86_64.rpm[root@server5 ~]# 123456789101112131415161718192021222324

*在server5:master

[root@server5 ~]# vim /etc/my.cnf.....

log-bin=mysql-bin

binlog-do-db=test

server-id=1binlog-ignore-db=mysql

.....

[root@server5 ~]# /etc/init.d/mysqld startInitializing MySQL database:                               [  OK  ]

Installing validate password plugin:                       [  OK  ]

Starting mysqld:                                           [  OK  ]

[root@server5 ~]#[root@server5 ~]# cat /var/log/mysqld.log | grep pass  #过滤初始密码2017-06-13T01:22:16.400573Z 1 [Note] A temporary password is generated for root@localhost: M.uepxaHq3oI

[root@server5 ~]# mysql_secure_installation        #修改mysql默认root密码[root@server5 ~]# mysql -uroot -pXiamin+0099mysql> GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO westos@'172.25.66.7'

   -> IDENTIFIED BY 'Xiamin+0099';         #创建账户并给与权限Query OK, 0 rows affected, 1 warning (0.07 sec)


mysql> Flush privileges;

Query OK, 0 rows affected (0.12 sec)


mysql> quit

Bye

[root@server5 ~]#12345678910111213141516171819202122232425262728

*在server7:slave

[root@server7 ~]# vim /etc/my.cnf.....

server-id=2

.....[root@server7 ~]# /etc/init.d/mysqld start

Initializing MySQL database:                               [  OK  ]

Installing validate password plugin:                       [  OK  ]

Starting mysqld:                                           [  OK  ]

[root@server5 ~]#


[root@server7 ~]# mysql_secure_installation

[root@server7 ~]# mysql -uroot -pXiamin+0099

(此时需要先stop slave)

mysql> change master to master_host='172.25.66.5', master_user='westos',    -> master_password='Xiamin+0099', master_log_file='mysql-bin.000005', master_log_pos=616;Query OK, 0 rows affected, 2 warnings (0.50 sec)


mysql> start slave;

Query OK, 0 rows affected (0.06 sec)


mysql> show slave status\G;.....

           Slave_IO_Running: Yes

           Slave_SQL_Running: Yes

.....mysql> quit

Bye

[root@server7 ~]# 12345678910111213141516171819202122232425262728

测试:

在master中新建test库

[root@server5 ~]# mysql -uroot -pXiamin+0099.....

mysql> show databases;

+--------------------+| Database           |

+--------------------+| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+4 rows in set (0.07 sec)

mysql> create database test;

Query OK, 1 row affected (0.08 sec)

mysql> show databases;

+--------------------+| Database           |

+--------------------+| information_schema |

| mysql              |

| performance_schema |

| sys                |

| test               |

+--------------------+5 rows in set (0.00 sec)


mysql> use test

Database changed

mysql> create table MyClass(

   -> id int(4) not null primary key auto_increment,

   -> name char(20) not null,

   -> sex int(4) not null default '0',

   -> degree double(16,2));

Query OK, 0 rows affected (1.20 sec)


mysql> show tables;

+----------------+| Tables_in_test |

+----------------+| MyClass        |

+----------------+1 row in set (0.00 sec)


mysql> show processlist;

+----+--------+---------------+------+-------------+-------+---------------------------------------------------------------+------------------+| Id | User   | Host          | db   | Command     | Time  | State                                                         | Info             |

+----+--------+---------------+------+-------------+-------+---------------------------------------------------------------+------------------+|  3 | westos | server7:50403 | NULL | Binlog Dump | 17034 | Master has sent all binlog to slave; waiting for more updates | NULL             |

| 14 | root   | localhost     | NULL | Query       |     0 | starting                                                      | show processlist |

+----+--------+---------------+------+-------------+-------+---------------------------------------------------------------+------------------+2 rows in set (0.00 sec)


mysql> quit

Bye


.....


[root@server5 ~]# 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859

在slave上查看

[root@server7 ~]# mysql -uroot -pXiamin+0099.....

mysql> show databases;

+--------------------+| Database           |

+--------------------+| information_schema |

| mysql              |

| performance_schema |

| sys                |

| test               |

+--------------------+5 rows in set (0.00 sec)


mysql> use test

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A


Database changed

mysql> show tables;

+----------------+| Tables_in_test |

+----------------+| MyClass        |

+----------------+1 row in set (0.00 sec)

mysql> show processlist;

+----+-------------+-----------+------+---------+-------+--------------------------------------------------------+------------------+| Id | User        | Host      | db   | Command | Time  | State                                                  | Info             |

+----+-------------+-----------+------+---------+-------+--------------------------------------------------------+------------------+|  1 | system user |           | NULL | Connect |  1894 | Slave has read all relay log; waiting for more updates | NULL             |

|  2 | system user |           | NULL | Connect | 16880 | Waiting for master to send event                       | NULL             |

| 10 | root        | localhost | NULL | Query   |     0 | starting                                               | show processlist |

+----+-------------+-----------+------+---------+-------+--------------------------------------------------------+------------------+3 rows in set (0.00 sec)



mysql> quit

Bye

.....

[root@server7 ~]# 













本文转自铁骑传说51CTO博客,原文链接:http://blog.51cto.com/ybzbfs/1953119 ,如需转载请自行联系原作者



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
mysql主从复制概述和配置
【10月更文挑战第22天】MySQL 主从复制是一种将主服务器的数据复制到一个或多个从服务器的技术,实现读写分离,提高系统性能和可用性。主服务器记录变更日志,从服务器通过 I/O 和 SQL 线程读取并应用这些变更。适用于读写分离、数据备份和恢复、数据分析等场景。配置步骤包括修改配置文件、创建复制用户、配置从服务器连接主服务器并启动复制进程。
|
2月前
|
监控 关系型数据库 MySQL
深入了解MySQL主从复制:构建高效稳定的数据同步架构
深入了解MySQL主从复制:构建高效稳定的数据同步架构
127 1
|
2月前
|
存储 关系型数据库 MySQL
MySQL主从复制原理和使用
本文介绍了MySQL主从复制的基本概念、原理及其实现方法,详细讲解了一主两从的架构设计,以及三种常见的复制模式(全同步、异步、半同步)的特点与适用场景。此外,文章还提供了Spring Boot环境下配置主从复制的具体代码示例,包括数据源配置、上下文切换、路由实现及切面编程等内容,帮助读者理解如何在实际项目中实现数据库的读写分离。
MySQL主从复制原理和使用
|
2月前
|
SQL 关系型数据库 MySQL
Mysql中搭建主从复制原理和配置
主从复制在数据库管理中广泛应用,主要优点包括提高性能、实现高可用性、数据备份及灾难恢复。通过读写分离、从服务器接管、实时备份和地理分布等机制,有效增强系统的稳定性和数据安全性。主从复制涉及I/O线程和SQL线程,前者负责日志传输,后者负责日志应用,确保数据同步。配置过程中需开启二进制日志、设置唯一服务器ID,并创建复制用户,通过CHANGE MASTER TO命令配置从服务器连接主服务器,实现数据同步。实验部分展示了如何在两台CentOS 7服务器上配置MySQL 5.7主从复制,包括关闭防火墙、配置静态IP、设置域名解析、配置主从服务器、启动复制及验证同步效果。
Mysql中搭建主从复制原理和配置
|
3月前
|
存储 关系型数据库 MySQL
分析MySQL主从复制中AUTO_INCREMENT值不一致的问题
通过对 `AUTO_INCREMENT`不一致问题的深入分析和合理应对措施的实施,可以有效地维护MySQL主从复制环境中数据的一致性和完整性,确保数据库系统的稳定性和可靠性。
117 6
|
3月前
|
存储 关系型数据库 MySQL
分析MySQL主从复制中AUTO_INCREMENT值不一致的问题
通过对 `AUTO_INCREMENT`不一致问题的深入分析和合理应对措施的实施,可以有效地维护MySQL主从复制环境中数据的一致性和完整性,确保数据库系统的稳定性和可靠性。
67 1
|
3月前
|
关系型数据库 MySQL Java
MySQL主从复制实现读写分离
MySQL主从复制(二进制日志)、 Sharding-JDBC实现读写分离
MySQL主从复制实现读写分离
|
4月前
|
SQL 关系型数据库 MySQL
说一下MySQL主从复制的原理?
【8月更文挑战第24天】说一下MySQL主从复制的原理?
64 0
|
4月前
|
存储 关系型数据库 MySQL
实战!MySQL主从复制一键搭建脚本分享
实战!MySQL主从复制一键搭建脚本分享
76 2
|
4月前
|
SQL 关系型数据库 MySQL
在Linux中,mysql 如何减少主从复制延迟?
在Linux中,mysql 如何减少主从复制延迟?