mysql配置主从产生文件_mysql -主从配置

主从应用场景:

一 、 数据库备份 主机宕机,启动从保证服务正常运行

二 、 主的压力大,读取从的数据,减少主的压力

mysql 主从 :Replication 又叫AB复制。 A与B实时同步。 master 主 slave 从

mysql 主从基于binlog(二进制文件。记录一些日志)主上需要开机binlog才能进行主从。

主从过程:

①主将更改操作记录到binlog中。

②从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog(中继日志)里

③从根据relaylog里面的sql语句按顺序执行。

https://blog.csdn.net/qq_15037231/article/details/80534329

什么是binlog

binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录。

2.binlog的作用

主从两台机器里有三个线程。

主上的log dump专门生成binlog的线程,他用来和从的 I/O 线程传递binlog

从上有两个线程,

一个是与主上的log dump 通信

一个是sql 线程 将relaylog里的sql 执行一遍

准备阶段

两台机器,皆有安装好的mysql服务,并且启动服务

配置主:

修改配置文件:my.cnf,增加server-id=130和log_bin=aminglinux1(产生文件的名称,可自定义)

7f6119cab305e5657d923cdb3ae0a4b6.png

2.修改完配置文件后,启动或者重启mysqld服务

3.之后可在/date/mysql下看见以aminglinux1的文件(不只一个)

646635692a23b30b1555f0f80065e107.png

备注:

000001 为二进制文件,之后会生成多个

index 为索引,这个必须有

以aminglinux 文件开头的,是主从的根本

4 du -sh /tmp/blog.sql #查看文件大小

8201a786be45d23f383fc02c1e877e8f.png

5.把mysql库备份并恢复成aming库,作为测试数据 mysqldump -uroot mysql > /tmp/mysql.sql #备份库

6.mysql -uroot -e “create database aming” mysql -uroot aming < /tmp/mysql.sql #创建库

7.恢复数据库

615d9af432810ed7df7e0fae9671b6bf.png

8.创建用作数据同步的用户

操作步骤:

1.先进入数据库 mysql -uroot -p密码

2.

grant replication slave on . to 'repl'@'slave_ip' identified by 'password';

注释: grant replication slave 制定用户时,首先配置权限

. : 所有的库,所有的表

'repl' 指定给这个用户,@slave_ip 针对从的ip

1e1977c2bc1b359565e4d72d09f2f92b.png

3.锁表,目的是不再读写数据

flush tables with read lock;

b0f2a0b342f4e18280ea836f8562a288.png

4。show master status;

a2f06458cb8bb67e7b838b32bb27932e.png

记录这两个值。

5.先退出数据库。

6.备份所有库到一个目录下/tmp下

从上操作:

1.vi /etc/my.cnf

2.增加 server-id=自定义 要求和主不一样

dc5901fae63667822c1b0b5f87d12408.png

3.重启服务 service mysqld restart

4.将主上的数据库复制到存上。

scp 主ip :/tmp/*.sql /tmp/

b9368a5a1a19f72e26b4acae108df339.png

5.连接数据库

mysql -uroot

备注:报错,没有找到这条命令。

解决办法:

alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。

5b29b3d76cf8ccd35c0486501f5cac87.png

6。登陆 mysql -uroot

创建三个库

create database aming;

0c6122448806a5f1f8f2f9caaca96ee6.png

quit

7.恢复数据库

mysql -uroot blog < /tmp/blog.sql

8.查看data目录下,是否和主一致

ls /data/mysql

14559cba052e52b78be8c14705834b27.png

9实先主从

登陆从数据库

stop slave;

实现主从同步:配置mysql主从复制时,在从机上需要进行CHANGE MASTER TO操作,以确定需要同步的主机IP,用户名,密码,binlog文件,binlog位置等信息。

备注:

MASTER_HOST 与 MASTER_PORT:

分别代表master主机名(或IP地址)及mysql实例端口号。

master_user='repl :用户

master_password='主密码'

change master to master_host='主ip',master_port=3306; master_user='repl', master_password='主密码', master_log_file='上述需要记录的名称', master_log_pos=上述需要记录的数值,;

例如:

change master to master_host='192.168.1.63', master_user='repl', master_password='ljy5157088', master_log_file='zhurizhi1.000003', master_log_pos=120;

4f4598d0ca44393b19fb3eb60ecd0563.png

再执行start slave;

b64ba875cdea56384357cc34069cdd35.png

10,判断主从配置成功

show slave status\G

b5086043bcde16e80c99481968b5631d.png

查看是否为yes,则为成功

dc0fee54756b17b506ad4a4001df851d.png

是否如下图所示;

从上执行mysql -uroot show slave stauts\G

看是否有 Slave_IO_Running: Yes

Slave_SQL_Running: Yes

还需关注 Seconds_Behind_Master: 0 //为主从延迟的时间

Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error:

3f80fc114fd4988669678c8dad5aa519.png

11.去主上,恢复写操作。

unlock tables;

2943e004598f4d1df8040f4149fba2ac.png

没出现两个yes时。

注意:关闭firewalld,selinux.

仅同步指定库 那就是只同步你指定的库

忽略指定库 那就是同步其他库

12测试主从同步

vi /etc/my.cnf

主服务器上 binlog-do-db= //仅同步指定的库 多个库可以用英文逗号分隔。

binlog-ignore-db= //忽略指

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值