从零搭建mysql的主从复制

原创 kevinying 互联网专栏 3月25日

一、centos7安装mysql

1、 先检查系统是否装有mysql

rpm -qa | grep mysql

2、 下载mysql的repo源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

如果报错: -bash: wget: command not found

需要安装一下插件:

yum -y install wget

3、 安装完成后下载mysql的repo源,然后安装mysql-community-release-el7-5.noarch.rpm包

sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

4、 安装MySQL

sudo yum install mysql-server

5、 重置MySQL密码

mysql -u root

如果报以下错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

原因是/var/lib/mysql的访问权限问题,需要执行以下命令即可。

chown root /var/lib/mysql/

6、 重启MySQL服务

service mysqld restart

7、 登陆设置密码

mysql -u rootuse mysql;update user set password=password('root') where user='root';exit;

8、重启MySQL服务

service mysqld restart

9、 设置Root账户远程连接密码

mysql -u root -pGRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; 重启服务器 service mysqld restart

10、 使用外网工具连接MySQL

需要关闭防火墙或者开放端口

systemctl stop firewalld.service

二、主从复制配置

1、主服务器节点配置

编辑my.cnf文件,增加以下内容:

编辑:vi /etc/my.cnf设置服务器id(保证在集群中唯一):server_id=177 开启日志文件:log-bin=mysql-bin   注意:该添加信息需要添加在mysqld下面,如果添加在mysql_safe,查询到的server_id总是为0

重启服务,验证是否配置成功

重启:service mysqld restart查看server-id:show variables like '%server_id%';如果能看到之前配置的server-id,说明配置成功show master status;能够看到同步的文件,和行数 说明已经配置成功。

2、从服务器节点配置

克隆服务器或者在从服务器上安装mysql,配置文件my.cnf与主服务器一致,唯一需要更改的地方为:server_id

vi /etc/my.cnfserver_id=178  ###从服务器server_id(与主服务器不同)log-bin=mysql-bin  ###日志文件同步方式binlog_do_db=test   ###同步数据库

重启服务,验证是否成功

重启:service mysqld restart查看server-id:show variables like '%server_id%';如果能看到之前配置的server-id,说明配置成功show master status;能够看到同步的文件,和行数 说明已经配置成功。

3、从服务器同步主服务器配置

3.1、运行命令:

change master to master_host='192.168.33.7',master_user='root',master_password='root',master_log_file='mysql-bin.000002',master_log_pos=216;

master_host:主服务器地址

master_user:主服务器用户名

master_password:主服务器密码

master_log_file:主服务器binLog(通过命令查看:show master status;)

master_log_pos:主服务器log行数(通过命令查看:show master status;)

3.2、开始同步:start slave

3.3、检查从服务器复制功能状态

SHOW SLAVE STATUS

如果出现:slave_io_running线程为no,查看日志信息为:

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.

因为服务器克隆的时候交UUID产生了重复 ,解决办法:

1.Cat  /etc/my.cnf检查server_id是否相同2.cd /var/lib/mysql查看两台服务器的auto.cnf如果是克隆的服务器,server-uuid是相同的3.删除 rm -rf auto.cnf4.重启服务器会重新生成auto.cnf,查看uuid是不同的了service mysqld restart

3.4、检查从服务器复制功能状态SHOW SLAVE STATUS,进行验证

4、在主服务器中添加一个数据库,添加表和数据进行测试,会发现,从服务器中也有和主服务器相同的数据库

(0)

相关推荐

  • Linux搭建MySQL主从

    实现目标 搭建两台MySQL服务器(一主一从),一台作为主服务器,一台作为从服务器,主服务器进行写操作,从服务器进行读操作. 工作流程概述 主服务器: 开启二进制日志 配置唯一的server-id 获 ...

  • 从零搭建java后台管理系统(二)mysql和redis安装

    接上篇开始安装mysql和redis 注意了,如果用阿里云服务器,外网访问的端口必须在安全组开启,否则外网访问不通 三.服务器安装redis和mysql 本次环境搭建将所有第三方服务会安装在阿里云服务 ...

  • 从零搭建分布式文件系统MinIO比FastDFS要更合适

    前两天跟大家分享了一篇关于如何利用FastDFS组件来自建分布式文件系统的文章,有兴趣的朋友可以阅读下<用asp.net core结合fastdfs打造分布式文件存储系统>.通过留言发现大 ...

  • 从零搭建企业级系统必备技能:业务建模

    编辑导读:当进入到一个全新的业务领域时,很多人会手足无措,完全不知道从何去理解业务,更别提为这套业务设计一套系统去进行日常业务运营的管理了.这时候,业务建模就显得格外重要了.什么是业务建模呢?它有什么 ...

  • Linux系统环境基于Docker搭建Mysql数据库服务实战

    开放端口规划: mysql-develop:3407 mysql-test: 3408 mysql-release: 3409 ps: 1.不推荐使用默认端口-3306,建议自定义端口 2.如果采用阿 ...

  • MySQL之主从复制

    复制的基本原理 (1)slave会从master读取binlog来进行数据同步 (2)三步骤 原理图 MySQL复制过程分成三步: master将改变记录到二进制日志(binary log).这些记录 ...

  • 从零搭建 Spring Cloud 服务

    作者:Anakki 链接:blog.csdn.net/qq_29519041/article/details/85238270 1.什么是SpringCloud? SpringCloud官网:http ...

  • 出海产品如何从零搭建IP插画库?让大厂高手教你!

    插画作为一种高效的视觉表现手法,在如今的互联网设计中已被广泛应用.它可以有效地帮助产品快速触达并感染用户,提升活跃度和活动转化率,塑造品牌形象等.对于 Trovo 这样一个快速发展中的出海平台,搭建起 ...

  • 手把手带你从零搭建人力资源系统(6)

    本文将从人力资源管理中的重要一环--考勤管理入手,结合企业管理过程中的实际情况浅谈劳动关系考勤排班相关的产品设计方案. 先来看一下自己的实际情况: 你所在的公司是否打卡考勤? 如果打卡,你是否经常迟到 ...

  • 手把手带你从零搭建人力资源系统(5)

    本文将从人力资源管理六大模块之一的--劳动关系入手,结合企业管理过程中的实际情况浅谈劳动关系相关的全流程产品设计方案. 首先我们来明确一下劳动关系相关的几个概念:(摘自百度百科) 劳动关系是指劳动者与 ...