MySQL主从复制和读写分离

引用地址:https://blog.csdn.net/qq_35755863/article/details/99095867

Mysql主从复制的配置(docker),这里是记录了下自己在配置主从复制时遇到的一些问题,基本思路都是依照上述引用地址的文章配置的。
1.说明
  ①我这里使用版本是Mysql5.6。Mysql5.6的my.cnf文件默认是在/etc/mysql下。

  ②这里我使用docker模拟出多个Mysql的场景。

注:docker模拟出来的容器里是没有vi或vim的,解决方法:

apt-get update

apt-get install vim

2.Docker模拟出多个Mysql服务器

        先拉取镜像

docker pull mysql5.6

        再启动容器

docker run --name mysql_master -p 3306:3306 -v F:/docker/mysql:/docker -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

--name mysql_master:给容器起个名字叫mysql_master

-p 3306:3306: 将容器中的3306端口映射到主机的3306端口

-v F:/docker/mysql:/docker: 将主机的F:/docker/mysql目录挂载到容器的/docker(下面会用到这个设置)

-e MYSQL_ROOT_PASSWORD=123456: 设置mysql的root用户的密码为123456

         进入容器:

 点击上述按钮进入,或是使用命令进入容器:

docker exec -it 555 /bin/bash

        修改容器里mysql的配置文件:

# 复制mysqld.cnf文件到/docker文件夹(在进行复制前需要先退出)
cp /etc/mysql/mysql.conf.d/mysqld.cnf /docker/mysqld.cnf

         在本机上修改刚才复制的文件,文件就保存在上面启动容器时设置的挂载目录下。再在容器中将刚才修改后的文件覆盖回去。

cp /docker/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf

        重启容器

 3.我遇到的一些问题导致主从同步不了       

         a、mysql配置主从关系时的语句master_log_pos的值到底填写什么?

                关于MYSQL的主从配置,一般顺序是:
                #先查看MASTER的状态:
                show master status

                #然后在从机器上面执行SQL语句,建立联系
                模板语句是:

change master to master_host='172.17.0.2',
master_user='root',
master_password='123456',
master_log_file='mysql-bin.000007',
master_log_pos=2566;

                此时,master_log_pos其实还有更多的赋值方法,就是直接如下:

change master to master_host='172.17.0.2',
master_user='root',
master_password='123456',
master_log_file='mysql-bin.000007',
master_log_pos=0;

                看清楚,master_log_pos=0;就是这么简单,系统会自动匹配的,有图为证:


                图中,Read_Master_Log_Pos: 2566已经显示出来了。
                更重要的是,

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

        b、show slave status,两个状态值为No;

 这里是No,而不是Yes,所以主从没有同步;解决方法(重启下slave):

stop slave;

start slave;

        c、auto.cnf 配置问题

                当mysql做了主从时,每个mysql都会有个uuid 作为唯一标识的。上面是由于主从复制mysql数据库了相同的UUID,所以,只需要修改auto.cnf配置文件即可

                <1>查找auto.cnf文件的位置(位置一般为:/var/lib/mysql/auto.cnf)

                <2>将文件中的uuid修改为不同数值。

4.主从同步,但是从数据库不做删除操作怎么实现?

        设置一个没有delete权限的帐号

        再绑定从库时设置的账号密码为该账号。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值