mysql数据库主从操作记录

master数据库已投入生产一段时间后,做主从复制的操作记录

环境:

master库:172.18.237.13
slave库:172.18.237.14

mysql版本说明:

master:mysql 5.6.33

slave:mysql 5.6.35

我到公司的时候已经装了5.6.33版本,找了很久没有找到5.6.33版本的包,勉强找到了5.6.35版本的包,只能硬头皮用着(最终主从搭建成功,暂时未发现其他异常)

1、确保master、slave服务器时间同步

yum -y install ntp

ntpdate  time.pool.aliyun.com #最好使用crontab做为任务定时时间同步

systemctl start ntpd

systemctl enable ntpd

2、master数据库授权slave服务器主从同步帐号
grant replication slave on *.* to [email protected]‘172.18.237.14‘ identified by ‘123456‘;

3、锁定master库
FLUSH TABLES WITH READ LOCK;

#解锁命令:UNLOCK TABLES;
4、备份master数据库至all.sql,排除数据库系统库(Database|performance_schema|information_schema|mysql|test)
mysql -e "show databases;" -uroot -p| grep -Ev "Database|performance_schema|information_schema|mysql|test" | xargs mysqldump -uroot -p --databases > all.sql
5、将all.sql备份文件scp至slave服务器

scp all.sql [email protected]:/root/

6、进入slave服务器将mysql的data目录中的文件进行备份(内容仅仅是初装的系统库等文件)

cp  /data/mysql56  /data/mysql56.bak

7、再用all.sql还原到slave数据库中
mysql -uroot -p <all.sql

8、提前将bin-log日志存放目录创建并将其改用户、用户组改为mysql,my.cnf配置将加入日志存放路径

cd /usr/local/mysql/data/

mkdir binglogs

chown -R mysql:mysql binglogs
9、修改master库my.cnf文件开启主从配置以及bin-log,加入如下配置参数:

#开启主从和binlog日志记录
server-id = 52
log-bin = mysql-bin
#binlog日志定期清理,单位天。
expire_logs_days = 5
#binlog日志保存路径和文件名,可根据实际目录进行改写
log-bin = /usr/local/mysql/data/binlogs/mysql-bin
#使用混合模式复制
binlog_format = mixed
#binlog每个日志文件大小
max_binlog_size = 100M
#binlog缓存大小
binlog_cache_size = 4M
#最大binlog缓存大小
max_binlog_cache_size = 512M
10、重启master数据库,使其主从配置生效,此时数据库会从之前的加锁状态自动解锁。
service mysqld restart

/usr/local/mysql/data/binlogs/下已经存在bin-log日志表示成功开启bin-log日志记录
11、进入master数据库,查看master状态,查看bin-log文件名以及position点
show master status;
如:
File        | Position
mysql-bin.000001 | 1692
12、由于数据库重启会自动解锁,又是生产数据库,此时通常有数据库写入或更新,position点
也会持续变化,所以此时查看到的position点不是最初的,应找到bin-log日志文件查看最初的position点作为slave同步初始点。

这里通过mysqlbinlog工具将不可直接读取的bin-log日志转换为可读格式在进行查看。

mysqlbinlog mysql-bin.000001 >abc.txt

head -n10 abc.txt
查看结果如下:(找到第一个position点作为slave同步初始点end_log_pos 120)
#181121 21:27:14 server id 52 end_log_pos 120 CRC32 0xcc4e91f2 Start: binlog v 4, server v 5.6.33-log created 181121 21:27:14 at startup
13、进入slave服务器,修改slave库my.cnf配置文件,开启主从模式

#不能与master的值一致
server-id = 203
#从数据库通常要求只读(可以限定普通用户进行数据修改的操作,但不会限定具有super权限的用户(如超级管理员root用户)的数据修改操作。)
read_only=1
#还可以添加其他参数...

14、重启slave,使其主从配置生效
service mysqld restart
15、连接slave数据库,配置master的相关参数并启动slave(position点用上面第12步查到的点)
change master to master_host=‘172.18.237.13‘,master_user=‘tb‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=120;
start slave;
16、查看主从连接状态
show slave status\G;
如下所示表示主从创建成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

原文地址:https://www.cnblogs.com/ccit/p/9998599.html

时间: 2024-10-12 09:37:48

mysql数据库主从操作记录的相关文章

mysql数据库主从同步配置教程--数据库同步

背景: 最近有一个mysql数据库同步的需求,我用了mysql主从同步的方法来实现.下面把步骤记录一下. 环境和拓扑 操作系统:Centos6.6 X64 mysql版本:5.1.73 Master: 10.6.1.210 Slave:  10.6.1.211 需求: 实现Master上test库同步到Slave上,但是禁止同步该库下的AA表 1.配置Master上的my.cnf #vim  /etc/my.cnf 添加内容到[mysqld]下,设定只同步test 数据库: [mysqld] l

[转帖]mysql数据库主从配置

mysql数据库主从配置 https://www.toutiao.com/i6680489302947791371/ 多做实验 其实挺简单的 很多东西 要提高自信 去折腾. 架构与我 2019-04-16 21:50:24 在一篇文章<离线安装mysql数据库>,讲解了离线安装mysql数据库的过程,本文将讲解mysql数据库的主从配置方法.mysql数据库进行主从配置后,可以实现数据库的备份.同时应用也可以实现读写分离,提高应用的并发量. 1.主从原理 从<高性能mysql>书中

mysql数据库表操作及授权

表操作:增删改查 把/etc/passwd文件的内容导入 passwd表里. mysql>load data infile"/etc/passwd" into table passwd fields terminated by ":"; 基于前面的passwd表,完成下列操作: 1:列出uid低于500且3个字母的用户 mysql> select name from passwd where uid<500 and name like "

mysql数据库主从同步

环境: Mater:   CentOS7.1  5.5.52-MariaDB  192.168.108.133 Slave:   CentOS7.1  5.5.52-MariaDB  192.168.108.140 1.导出主服务数据,将主备初始数据同步 master: //从master上导出需要同步的数据库信息 mysqldump -u*** -p*** --database test > test.sql //将master上的备份信息传输到slave上 scp /root/test.sq

linux下mysql数据库主从同步配置

说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说明:在两台MySQL服务器192.168.21.128和192.168.21.129上分别进行如下操作 备注: 作为主从服务器的MySQL版本建议使用同一版本! 或者必须保证主服务器的MySQL版本要高于从服务器的MySQL版本! 一.配置好IP.DNS .网关,确保使用远程连接工具能够连接

Linux系统中MySQL数据库“主从”配置

MySQL数据库"主从"配置 一.配置概述: 在Linux操作系统中配置MySQL数据库的主从复制是很重要的,为什么这样说呢!是因为在你搭建一个服务器以后你配置了2台数据库,一主一从.2台数据库配置好以后,当其中一台数据库被攻击以后,你被攻击的这台数据库的数据会被自动的备份到另一台数据库中去.即使被攻击了数据也不会丢失.配置主从就是为了让web网站或其他的软件可以正常运转,确保数据的存在. 二.配置步骤: <配置具备的条件> 1.需要在虚拟机上安装好两台主机,同时安装好同一

Python对MySQL数据库的操作

Python中,可以使用MySQLdb模块连接到MySQL数据库,对MySQL数据库进行操作 [第一步] MySQL安装 参考文档: http://blog.csdn.net/Jerry_1126/article/details/20837397 [第二步]连接到MySQL 创建数据库 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.5

Mysql数据库主从不同步解决案例

问题说明:做了Mysql的主从,还没做主从分离,导致同事在mysql从服务器执行了写入操作,引起不同步(show slave status\G:Slave_SQL_Running: No) 解决方法: 1, Mysql > slave stop; Mysql > set global sql_slave_skip_counter =1 ; Mysql > slave start; Mysql > show slave status\G 因为插入的数据不止是1条,操作太慢且麻烦 2,

谈谈Mysql数据库主从同步延迟分析及解决方案

一.MySQL的数据库主从复制原理 MySQL主从复制实际上基于二进制日志,原理可以用一张图来表示: 分为四步走: 1. 主库对所有DDL和DML产生的日志写进binlog: 2. 主库生成一个 log dump 线程,用来给从库I/O线程读取binlog: 3. 从库的I/O Thread去请求主库的binlog,并将得到的binlog日志写到relay log文件中: 4. 从库的SQL Thread会读取relay log文件中的日志解析成具体操作,将主库的DDL和DML操作事件重放. 关