Mysql主从复制配置

本文只是介绍安装和配置,关于一些名词和原理,请参考mysql手册。

Mysql的复制最少需要两台mysql服务器,一台主(主机名master,ip为192.168.20.204),一台从(主机名slave:ip 为192.168.20.205)。

为了快速搭建mysql环境,我选择了rpm的安装方式,在实际应用中根据自己的需求选择安装方式。下载mysql的RPM安装文件并安装mysql,两台mysql的安装时一样的(我下载的是常规的Linux RPM包,因为我的系统是centos,之前选择RedHat的RPM包安装失败了)

MySQL-server-5.1.46-1.glibc23.i386.rpm//服务器程序

MySQL-client-5.1.46-1.glibc23.i386.rpm//客户端程序

一.Mysql的安装

[root@master ~]# rpm -ivh MySQL-server-5.1.46-1.glibc23.i386.rpm

[root@master ~]# rpm -ivh MySQL-client-5.1.46-1.glibc23.i386.rpm

安装完成后,拷贝mysql配置文件到/etc/目录下

[root@master mysql]# cp /usr/share/my-medium.cnf /etc/my.cnf

初始化mysql的root密码

mysqladmin -u root password 123456

二.配置复制

1,首先登录master数据库,创建复制账号

mysql> grant replication slave on *.* to repl@192.168.20.205 identified by '123456';

2,设置只读锁定,查看二进制日志名和记录偏移量

mysql> flush tables with read lock;

mysql> show master status;

+------------------+----------+--------------+------------------+

| File| Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |106 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

3,备份(导出)master数据库,解除只读锁定

[root@master ~]# mysqldump --all-databases > all.sql

[root@master ~]# mysql -uroot -p123456

mysql> unlock tables;

4,在slave服务器上,将master导出的sql文件导入

[root@slave ~]# mysql -uroot -p123456 < all.sql

登录slave数据库,查看库和表,看是否和master一致

5,确保导入成功后,修改salve数据库的配置文件

[root@slave ~]# vi /etc/my.cnf

将server-id = 1修改成server-id = 2

保存退出,并暂时停止slave数据库

[root@slave ~]# service mysql stop

6,在slave上,使用--skip-save-start选项启动数据库,这样做的好处是不会立即启动从数据库上的复制进程,方便我们进一步配置从服务器

[root@slave ~]# mysqld_safe --skip-save-start &

7,设置从数据库

mysql> CHANGE MASTER TO

-> MASTER_HOST='192.168.20.204',

-> MASTER_USER='repl',

-> MASTER_PASSWORD='123456',

-> MASTER_LOG_FILE='mysql-bin.000001',

-> MASTER_LOG_POS=106;

8,启动slave进程,查看进程列表

mysql> start slave;

mysql> show processlist \G

*************************** 1. row ***************************

Id: 2

User: root

Host: localhost

db: NULL

Command: Query

Time: 0

State: NULL

Info: show processlist

*************************** 2. row ***************************

Id: 3

User: system user

Host:

db: NULL

Command: Connect

Time: 30

State: Waiting for master to send event

Info: NULL

*************************** 3. row ***************************

Id: 4

User: system user

Host:

db: NULL

Command: Connect

Time: 30

State: Has read all relay log; waiting for the slave I/O thread to update it

Info: NULL

3 rows in set (0.00 sec)

蓝颜色标记的字段,表明已经连上了master数据库。

9,接下来就是测试复制了

首先在master数据库中创建一个名为yanggt的库,在库中新建一个表,插入几条记录,看是否能在slave数据库中看到,如果看到的结果和master一致,说明已经ok了!

mysql主从配置 51cto_Mysql主从复制配置相关推荐

  1. 主从配置_MySQL主从复制配置详解

    MySQL版本5.5.58 第一步配置主机 主机配置如下: server-id = 1 #服务器id (主从必须不一样) log_bin = mysql-bin #打开日志(主机需要打开), 这个my ...

  2. mysql 1677_mysql之数据库主从复制配置报错1677

    mysql之数据库某表字符集和数据库字符集不一致导致主从复制配置报错1677 mysql数据库中某张表字符集是utf8而my.cnf设置的数据库的字符集是utf8mb4,导致在配置主从复制时,报如下错 ...

  3. mysql 1677_MySQL之数据库主从复制配置报错Last_Errno: 1677

    MySQL之数据库某表字符集和数据库字符集不一致导致主从复制配置报错1677 mysql数据库中某张表字符集是utf8而my.cnf设置的数据库的字符集是utf8mb4,导致在配置主从复制时,报如下错 ...

  4. kali mysql停止服务器_MySQL主从复制配置详解

    MySQL版本5.5.58 第一步配置主机 主机配置如下: server-id = 1 #服务器id (主从必须不一样) log_bin = mysql-bin #打开日志(主机需要打开), 这个my ...

  5. mysql主从 单点_MySQL主从复制虽好,能完美解决数据库单点问题吗?

    一.单个数据库 服务器 的缺点 数据库服务器存在单点问题: 数据库服务器资源无法满足增长的读写请求: 高峰时数据库连接数经常超过上限. 二.如何解决单点问题 增加额外的数据库服务器,组建数据库集群: ...

  6. mysql主从应用_MySQL主从复制应用、主从复制原理

    mysql主从复制安装配置 1.基础设置准备 #操作系统: centos6.5 #mysql版本: 5.7 #两台虚拟机: node1:192.168.85.111(主) node2:192.168. ...

  7. mysql 主从 问题_Mysql主从复制的问题与解决

    主从复制的原理 主库将变更的操作写入bin-log日志中(增,删,改操作). 从库中的I/O线程将主库的bin-log拷贝到本地,写入relay-log(中继日志中) 从库的SQL线程从中继日志中读取 ...

  8. mysql 主从二进制日志_Mysql-8 配置主从复制(基于二进制日志)

    1. 实验环境 System IP Host CentOS 7.4.1708 192.168.100.101 master CentOS 7.4.1708 192.168.100.102 slave ...

  9. mysql主从复制时间配置_MySQL主从复制配置

    环境 CentOS 7.5 Docker 1.13.1 MySQL 8.0.16 基于以上环境启动三个mysql容器,一个为master,二个为slave master和slave使用的mysql版本 ...

最新文章

  1. App功能测试的注意点
  2. 数据科学家必须要掌握的5种聚类算法
  3. 生产环境LNMP (果图片)
  4. Qt5布局管理(2)
  5. laravel框架总结(十一) -- 集合
  6. 51的IO口和上拉电阻驱动
  7. 漫画:给女朋友介绍什么是 “元宇宙” ?
  8. textarea中插入标签_HTMLCSS学习笔记(二)-- HTML表单标签
  9. 说一下你对多态的理解?_如何去理解java中的多态?从jvm角度分析也许让你更清晰...
  10. 动态创建MySQL Group Replication的节点(r11笔记第84天)
  11. python split拆分字符串_python实现字符串完美拆分split()的方法
  12. Java中OutOfMemoryError(内存溢出)的情况及解决办法
  13. 关于CAD选择集的一些用法
  14. 高仓健电影《海峡》观后感
  15. 武汉大学计算机学院2018夏令营,武汉大学
  16. 用手机玩转GIS!这些你常用的GIS软件竟然都有手机版
  17. HALCON联合C#检测表面缺陷——检测缺陷原理(三)
  18. 几款制作网页线框图的软件介绍
  19. 【PAT乙级】1020 月饼
  20. nmon analyser 使用中报错“宏”不可用的问题及处理

热门文章

  1. SAP CRM Distribution Chain数据模型
  2. 如何在S/4HANA生产订单创建上下文里拿到前置销售订单信息
  3. SAP标准培训课程C4C10学习笔记(一)第一单元
  4. ABAP和XML数据格式互相转换的两种方式
  5. vscode 设置断点知乎_vscode 代码自动换行设置
  6. c字符串截取一部分字符串_Python如何截取一段字符串?
  7. 最近公共祖先_LCA 最近公共祖先
  8. python3.x版本的保留字总数是多少_Python3.6.5版本的保留字总数是:()-智慧树大数据分析的python基础章节答案...
  9. pygame为游戏添加背景_万能的Python和Pygame模块构建一个游戏框架
  10. 悲观锁代码java_悲观锁的代码实现如何编写?