目标:搭建两台MySQL服务器,一台作为主服务器,一台作为从服务器,实现主从复制

环境:
  主数据库: 192.168.1.1
  从数据库: 192.168.1.2

  mysql安装可参考:https://www.cnblogs.com/merely/p/9714681.html

配置步骤:

1、保证两个数据库中的库和数据是一致的;

2、在主数据中创建一个同步账号(可不创建使用现有的),如果仅仅为了主从复制创建账号,只需要授予REPLICATION SLAVE权限。
1)、创建一个账号,账号:master 密码: 123456

CREATE USER 'master'@'%' IDENTIFIED BY '';
GRANT REPLICATION SLAVE ON *.* TO 'master'@'%' IDENTIFIED BY '' WITH GRANT OPTION;

3、配置主数据库
1)要主数据库,你必须要启用二进制日志(binary logging),并且创建一个唯一的Server ID,这步骤可能要重启MySQL。
2)主服务器发送变更记录到从服务器依赖的是二进制日志,如果没启用二进制日志,复制操作不能实现(主库复制到从库)。
3)复制组中的每台服务器都要配置唯一的Server ID,取值范围是1到(232)−1,你自己决定取值。
4)配置二进制日志和Server ID,你需要关闭MySQL和编辑my.cnf或者my.ini文件,在 [mysqld] 节点下添加配置。
5)下面是启用二进制日志,日志文件名以“mysql-bin”作为前缀,Server ID配置为1,如下:

[mysqld]
log-bin=mysql-bin
server-id=
#网络上还有如下配置
#binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
#binlog-ignore-db=mysql //要忽略的数据库
innodb_flush_log_at_trx_commit=
sync_binlog=

4、重启mysql

5、查看主服务器状态:

cd /usr/local/mysql/bin
./mysql -uroot -p
mysql> show master status;

注意:记录好File和Position,后面要用

6、配置从数据库:
1)从服务器,同理,要分配一个唯一的Server ID,需要关闭MySQL,修改好后再重启,如下:

[mysqld]
server-id=
#可以指定要复制的库
replicate-do-db=test-xxx #在master端不指定binlog-do-db,在slave端用replication-do-db来过滤
replicate-ignore-db=mysql #忽略的库
#网上还有下面配置
#relay-log=mysqld-relay-bin

2)配置连接主服务器的信息:
进入sqlplus:

cd /usr/local/mysql/bin
./mysql -uroot -p
mysql> stop slave;
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.1',
-> MASTER_USER='master',
-> MASTER_PASSWORD='',
-> MASTER_PORT=,
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=;
mysql> start slave;

3)查看状态

mysql> show slave status \G;
       Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.1
Master_User: master
Master_Port:
Connect_Retry:
Master_Log_File: mysql-bin.
Read_Master_Log_Pos:
Relay_Log_File: localhost-relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File: mysql-bin.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test-xxx
Replicate_Ignore_DB: mysql
...
Seconds_Behind_Master: #表示已同步
...

4)若 Slave_SQL_Running: no 请重复执行以下内容,直至yes:

stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=;
start slave;

参考的资料:

  1、https://blog.csdn.net/envon123/article/details/76615059
  2、https://blog.csdn.net/xiaoxinla/article/details/7679578

linux下mysql主从复制搭建的更多相关文章

  1. Linux下Mysql主从复制(Master-Slave)与读写分离(Amoeba)实践

    一.为什么要做Mysql的主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻 ...

  2. Linux下 MYSQL 主从复制、同步

    mysql从3.23.15版本以后提供数据库复制功能.利用该功能可以实现两个数据库同步,主从模式(A->B),互相备份模式(A<=>B)的功能. 主从模式(A->B)的配置过程 ...

  3. Linux下MySQL主从复制(Binlog)的部署过程

    什么是 MySQL 的主从复制 Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上 ...

  4. Linux下MySQL主从复制(GTID)+读写分离(ProxySQL)-实施笔记

    GTID概念: GTID( Global Transaction Identifier)全局事务标识.GTID 是 5.6 版本引入的一个有关于主从复制的重大改进,相对于之前版本基于 Binlog 文 ...

  5. mysql学习(3)-linux下mysql主从复制

    前言:为什么MySQL要做主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻 ...

  6. linux下mysql主从复制,实现数据库同步

    运行环境: 查看linux版本命令:lsb_release -a 主服务器:centos release 6.5 mysql 5.6.10-log  IP:172.17.200.25从服务器:cent ...

  7. Linux下MySQL/MariaDB Galera集群搭建过程【转】

    MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包 ...

  8. linux下mysql基于mycat做主从复制和读写分离之基础篇

    Linux下mysql基于mycat实现主从复制和读写分离1.基础设施 两台虚拟机:172.20.79.232(主) 172.20.79.233(从) 1.1软件设施 mysql5.6.39 , my ...

  9. linux下的服务器搭建集成环境

    linux下的服务器搭建集成环境 ——写给初学者的我们 1.准备工具 1.1 SecureCRT SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录 ...

随机推荐

  1. Ehcache配置参数简介

    < defaultCache         maxElementsInMemory = "10000"         maxElementsOnDisk = " ...

  2. Java基础知识学习笔记(一)

    理解面向对象: Java纯粹的面向对象的程序设计语言,主要表现为Java完全支持面向对象的三个基本特征:继承.封装.多态. Java程序的最小单位是类,类代表客观世界中具有某种特征的一类事物,这些类可 ...

  3. python 取整itertools

    #coding:utf-8 import sys import itertools def MaxString(n,nums): list1 = nums list2 = [] for i in ra ...

  4. 基于Verilog HDL的二进制转BCD码实现

    在项目设计中,经常需要显示一些数值,比如温湿度,时间等等.在数字电路中数据都是用二进制的形式存储,要想显示就需要进行转换,对于一个两位的数值,对10取除可以得到其十位的数值,对10取余可以得到个位的数 ...

  5. 加锁并发算法 vs 无锁并发算法

    Heinz Kabutz 在上周举办了一次成功 JCrete研讨会,我在会上参加了对一种新的 StampedLock(于JSR166中 引入) 进行的评审.StampedLock (邮戳锁) 旨在解决 ...

  6. 日志记录的作用和方法 java

    程序中记录日志一般有两个目的:Troubleshooting和显示程序运行状态.好的日志记录方式可以提供我们足够多定位问题的依据.日志记录大家都会认为简单,但如何通过日志可以高效定位问题并不是简单的事 ...

  7. ActiveMq 总结(二)

    4.2.6 MessageConsumer MessageConsumer是一个由Session创建的对象,用来从Destination接收消息. 4.2.6.1 创建MessageConsumer ...

  8. Flash(as3) 调整显示对象颜色

    在游戏开发中改变显示对象的颜色是比较常见的操作,那么除了在FlashCS中调整,AS3又提供了怎样的方式呢? ColorTransform 这个类是轻量级的应用,其构造参数如下: ColorTrans ...

  9. MySql采用range分区可提升查询效率

    简介: RANGE分区基于一个给定的连续区间范围,早期版本RANGE主要是基于整数的分区.在5.7版本中DATE.DATETIME列也可以使用RANGE分区,同时在5.5以上的版本提供了基于非整形的R ...

  10. asp.net core 的用户注册功能——Identity上手

    首先请using这个类库. using Microsoft.AspNetCore.Identity; 这个类库老牛逼了,首先是包含了一个IdentityUser类.我们可以自己写一个User类继承Id ...