[图文详解]在Linux中搭建MySQL主从复制中所遇到的若干问题以及解决方法

Linux部分

镜像虚拟机所遇到的问题以及解决方法

镜像虚拟机导致原虚拟机以及镜像虚拟机出现的网络的问题

解决方法:配置ifcfg-ens文件

526c038c46d84a6a8013079bf87475a4.png

 

如图,复制mac地址到ifcfg-ens33文件中,原因可能是因为mac地址和网卡冲突?,这里请注意红框部分

文件名随意,但是需要与您的NAME DEVICE相同 更推荐使用ens33

HWADDR 后填上您自己的mac地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33

337d84e321f14d1d8ee1b2a4e76e8338.png

克隆后的虚拟机需要按照同样的方法进行更改 注意需要删除uuid,更改您的网关地址即 HWADDR

5f6bcacbadd8414e8a7168522bf6e287.png

{

碎碎念:此处花括号内的可以省略不看 建议跳到网络状态部分

这里笔者踩了一个坑,误认为需要将uuid进行更改,但又拿不准到底需要改成什么,又不敢乱改,于是在网上找了tune2fs ,xfs_admin 等一堆工具来解决...结果还是无果 

sudo yum install e2fsprogs 

699d66d76a35408bb9fd3f81b995e05b.png

blkid 命令列出所有分区及其UUID和文件系统类型

sudo blkid

3ddfc964156e465b9c401824de1515ef.png

sudo yum install xfsprogs

08911565f140461ea241c802f7cb3181.png

然而修改uuid依旧报错,解决无果,就差格式化了2333

85def525c41d4ad6a6cfbb3ab243d6ab.png

9e62b63828ac459e81665eb44083cd8b.png

f7e974ce264b46f0b1d45f35ee2faaea.png

f4a65c3defa2480da7ec4df91cf56660.png

等等就不一一列举,当时心情蛮难绷的,然后实在受不了了,脑子一抽,索性直接把配置文件里的uuid删掉,然后把配置文件名改了回去 (这里笔者看网上的文章理解不到位,误以为需要把ens33改成其他的),结果居然ok了...

}

 

确认网络状态

service network restart

5c1e6b80eaba4cbd8a34f2c25cf9e6e8.png

不敢相信,ping一下

04a87ae5ccdc4e2a8e8c1a4d60ca609a.png

还是不敢相信,主机再ping一下

ab8d291aead4491eae74cc5e0bab3f2a.png

斯国也

MySQL部分

主服务器配置

通过which mysql 找到MySQL可执行文件的路径

8105ae1d2cdc4298848058fa08a69a84.png

whereis mysql命令来查看MySQL相关文件的路径,包括可执行文件、配置文件等

e0d467c27abb44c3952703b9e423b034.png

主节点需要做的工作就是创建用户并赋予权限,然后开启binlog日志。

启动mysql 并输入密码

mysql -uroot -p

8e4f8468ffa041868b1f93a66fd36f30.png

首先创建给从服务器登录用的账号和密码

create user 'underling_user139'@'192.168.153.139' identified by 'Aa123456.';

2cd612d4fa3e44418ff1d1a50499e2d8.png

赋予权限

grant replication slave on *.* to 'underling_user139'@'192.168.153.139' identified by 'Aa123456.';
2a89cf7be3b640dba6ad4799926ff90e.png

修改mysql配置文件

vi /etc/my.cnf
 

log-bin=master-a-bin #日志文件名称
binlog-format=ROW #二进制日志格式,有row,statement,mixed三种类型,主从要一致
server-id=1 #要求各个服务器的这个id必须不一样
binlog-do-db=db_test #同步的数据库名称
4e7bbbb4a5f2463887d47eccfb0a90ae.png

重启主服务器mysql  (注意:这步一定要有!)

service mysqld restart

d9d84742b3b54b278020fdb7ab4638b3.png

在主服务器查看主服务器状态信息

show master status;
bb42193173bf4616b5b993e3b7d29352.png

这里先暂时不动主服务器,file以及 position之后会用到

 

从服务器配置

从服务器需要做的工作就是配置同步日志,指定主节点的ip,端口,用户,密码等,然后启动从节点。

首先同样修改配置文件

vi /etc/my.cnf
9922ce9d155e4b7a97f94b6d43014439.png

log-bin=slave-a-bin
binlog-format=ROW
server-id=2

615f8ab90890419f9a03dc0e6ed9c8fc.png

 

重启从服务器mysql

service mysqld restart
58ba237574d94f70ac3f63c0f4329030.png

指定主服务器信息

change master to master_host='192.168.153.134',master_user='slave_user139',master_password='Aa123456.',master_log_file='master-a-bin.000001',master_log_pos=154;
5c71757cb81a4bd5acd33540ef2419c8.png

注意:master_host 是主节点ip,master_user 和 master_password 是主节点创建给从节点的账号和密码,笔者由于之前的原因更换掉了账号,您可以改为您自己的,master_log_file 和master_log_pos 根据查看主服务器状态信息查询出来的File和Position值自行更换。即上面主服务器配置的最后一条

启动从节点

start slave;
845a9913a3c94161a3f7b411df364199.png

查看从节点状态

show slave status \G;

154be44960a547848c8b0ab79d8e0a84.png

判断是否成功主要看 Slave_IO_Running 和 Slave_SQL_Running 是否都为YES。

注:正常情况都会为YES,可以看到我这里Slave_IO_Running为Connecting,原因是由于我的从节点是虚拟机克隆出来的,uuid会重复,修改uuid不一致即可。

cat /var/lib/mysql/auto.cnf

1ca4ae345699433d8be0d11f6cdb2772.png

2b4a92c56fae4e228f3f19c80756b867.png

修改从服务器的uuid 修改和主服务器不一样即可

vi /var/lib/mysql/auto.cnf

a696675c66aa4597bbd50f3eca4638aa.png

ba68e3b38c724bfa93121b17bbe8e7c4.png

d96fcf7c5ee34446971e94ae3bf9679c.png

测试

在主服务器中对sql进行操作

72a9bd0cce8841499d12347789707d68.png

在从服务器中可以查到

69fedd52e6794df4837d4cb6251f1e1b.png

部分来源MySQL主从复制搭建详解-CSDN博客

完毕~如有问题,欢迎友好讨论

 

  • 47
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值