centos 虚拟机重启后mysql 启动不了_mysql主从复制

本文介绍了在CentOS 7环境下,如何配置MySQL 5.7的主从复制,包括安装MySQL,设置静态IP,安装过程中遇到的问题及解决办法,以及主从复制的详细步骤,包括授权、配置文件修改、状态检查和数据同步验证。
摘要由CSDN通过智能技术生成

e5104d58255b93ce33d56f374ce11a1a.png

主从复制

Mysql数据库主从复制的实现

原理:主服务器执行的任何增删改查mysql服务器都会记录一个日志文件(a-bin.log),通过网络手段从服务器拿到a-bin.log文件之后就会执行相应的操作(前提是数据库结构是一致的)

环境的介绍:

系统环境:centos7

数据库:mysql5.7.3

xshell版本:6.0

xftp版本:6.0

服务器:192.168.1.117(主) 192.168.1.118(从)

一、下载cenos7镜像

http://101.206.167.169:9990/mirrors.aliyun.com/centos/7/isos/x86_64/

我下载的是最小安装:CentOS-7-x86_64-Minimal-2003.iso

二、安装完成配置静态IP

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3,保存

e067597f3f9249975c2764b3d1f16c2a.png

配置完成:wq保存退出,重启网卡:systemctl restart network

三、安装mysql5.7

准备安装包mysql-5.7.30-1.el6.x86_64.rpm-bundle.tar上传到虚拟机

##查询有没有安装,有安装需要卸载掉,然后手动删除

rpm -qa | grep mariadb

rpm -qa | grep mysql

##卸载

rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64

##创建压缩目录

mkdir mysql

##解压mysql包

tar -vxf mysql-5.7.30-1.el6.x86_64.rpm-bundle.tar -C ./mysql

f652ae73b4daa87d475a387760f042a5.png

##安装

rpm -ivh mysql-community-common-5.7.30-1.el6.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.30-1.el6.x86_64.rpm

rpm -ivh mysql-community-client-5.7.30-1.el6.x86_64.rpm

rpm -ivh mysql-community-server-5.7.30-1.el6.x86_64.rpm

warning: mysql-community-server-5.7.30-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

原因:这是由于yum安装了旧版本的GPG keys造成的

重新执行:rpm -ivh mysql-community-server-5.7.30-1.el6.x86_64.rpm --force --nodeps(force:强制安装,nodeps:安装时不检查依赖关系)

##启动mysql

systemctl start mysqld

##myql安装会默认密码,查看密码

cat /var/log/mysqld.log |grep password

61faafb7a195a593ce8f5eff9123ad92.png

##mysql登录

mysql -uroot -p

77b047d7bdaf08feb764c87d00e3d1a0.png

##mysql重置密码,先关闭验证,需要打开配置文件

vi /etc/my.cnf

##添加

validate_password=off

79b9f16809635c8f0a3f388bff0cabd3.png

##重启一下mysql

systemctl restart mysqld

##重置密码

alter user 'root'@'localhost' identified by '123456';

#再次刷新系统权限表

flush PRIVILEGES

##重新登录,显示数据库,表示已经重置成功

872787637e8c944e0f2a51885974f775.png

#创建测试数据库

create database ddm;

use ddm;
create table user(id int not null primary key,name varchar(50));

四、主服务器的配置

进入mysql编辑

vi /ect/my.cof

#添加的内容

#日志文件的名字

log_bin=master-a-bin

#日志文件的格式

binlog-format=ROW

#服务器的id(zk的集群),一定要是唯一的

server-id =1

#对应需要实现主从复制的数据库

binlog_do_db=ddm

#添加完之后需要登录主服务器给从服务器授权(192.168.1.%:1以后的服务器)

grant replication slave on *.* to 'root'@'192.168.1.%' identified by '123456';

#刷新系统权限表

flush PRIVILEGES

#修改完需要重启mysql服务

service mysqld restart

#查看主服务器的状态,出现下图,说明主服务器已经配置成功

mysql>show master status;

fedcc3a5a7fa4cca0366ebf2c4d7c536.png

#名词解释

File 生成的日志文件名

Position 文件名所处的一个位置(偏移量)

Binlog_Do_Db 需要实现主从复制的数据库

#给客户端授权

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option ;

#还需要解决正在连接中的问题(因为还连接不上)

#一般navicat客户端连接不上

#1.防火墙 2.端口未开放 3.未授权

#退出数据库连接,可以开放3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

#重新加载防火墙

firewall-cmd --reload

五、配置从服务器,配置mysql

vi /ect/my.cof

#添加的内容

#日志文件的名字

log_bin=master-a-bin

#日志文件的格式

binlog-format=ROW

#服务器的id(zk的集群),一定要是唯一的

server-id =2

#双主互相备份(表示从服务器可能是另外一台服务器的主服务器)

#log-slave-updates=true

3、验证主从复制

#添加完成需要重启mysql(主从)服务器

service mysqld restart

#查看主服务器的状态,出现下图,说明主服务器已经配置成功

mysql>show master status;

820531d17f493256cca3ad41f79c3a8d.png

#设置从服务器如何找到主服务器,设置主从复制的日志和偏移量

change master to master_host='192.168.1.117',master_port=3306,master_user='root',master_password='123456',master_log_file='master-a-bin.000002',master_log_pos=3140;

#启动slave的数据同步

start slave;

#出现下图表示已经连接成功,已经实现主从复制了

show slave statusG;

0706cda29d7c5fd00b92404e46553bc5.png

验证数据是否同步

主服务器创建表

046e355a6c28b4825b2e7f2ada94b4d3.png

从服务器也有数据,说明已经实现主从同步了:

46fc99accf3f7bde8fa7a1aeda4bfc8a.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值