mysql - slave/主从配置

本文详细介绍了如何在Ubuntu系统上配置MySQL主从同步,包括配置案例、slave服务器的具体步骤以及常见故障处理。涉及内容包括修改配置文件、创建同步用户、设置权限、启动和检查主从状态等,同时提供了查看和解决同步错误的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.配置案例

2.slave案例


1.配置案例

Ubuntu搭建mysql主从

https://blog.csdn.net/igxuyr_/article/details/81186969

ubuntu 16.04配置MySQL主从同步的配置方法

https://blog.csdn.net/weixin_44094872/article/details/85237714

 

Ubuntu下MySql5.7主从复制搭建

https://blog.csdn.net/apple9005/article/details/79068673

 

线上MYSQL同步报错故障处理方法总结(必看篇)

https://blog.csdn.net/sj349781478/article/details/79492895

 

MySQL主从同步报错故障处理集锦

https://www.cnblogs.com/wangxin37/p/6398755.html

 

2.slave案例

(1)usc 与 us151 搭建主从同步

主服务器 usc

IP:34.214.222.67

系统:Ubuntu 16.04

MySQL:5.7.27

 

从服务器 us151

IP:18.216.53.218

系统:Ubuntu 16.04

MySQL:5.7.27

 

1)主服务器数据库配置 -- 记得开启aws允许3306接口远程连接设置(only配置主服务器)

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 0.0.0.0 -- 默认是127.0.0.1 ,改成0.0.0.0允许远程连接

server-id              = 1    -- 用来唯一的标识某个数据库实例的值,数值随意,但不可以重复 

log_bin                = /var/log/mysql/mysql-bin.log  -- 开启binlog

binlog_format          =mixed   -- binlog的格式,包括mixed,statement,mixed

binlog_do_db            = ceshi -- 指定binlog记录ceshi数据库,多个数据库需分行添加

binlog_do_db            = ceshi2

binlog_ignore_db        = mysql   -- 指定binlog记录忽略的mysql数据库。

 

配置完后重启mysql

sudo service mysql restart

 

2)创建用于同步的用户账号

root登录mysql

mysql -u root -pb123456

创建用于同步的账号repl

CREATE USER 'repl'@'18.216.53.218' IDENTIFIED BY 'atNVhX8aEfXT3b9A';

#分配权限REPLICATION SLAVE

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'18.216.53.218';

#刷新权限

flush privileges;

可查看user的账号和授权的ip;

select Host,user from mysql.user;

查看日志文件

show master status ;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 | 771 | | | |

+------------------+----------+--------------+------------------+-------------------+

记录master_log_file 的值 mysql-bin.000001,master_log_pos的值771

 

3)从服务器数据库配置

server_id = 2

log_bin =/var/log/mysql/mysqlbin.log

slave_skip_errors = all

replicate-do-db =test #只复制某个库

replicate-ignore-db=mysql #不复制某个库

 

配置完后重启mysql

sudo service mysql restart

配置连接主服务器ip及登录账号:

change master to master_host='34.214.222.67',master_port=3306,master_user='repl',master_password='atNVhX8aEfXT3b9A',master_log_file='mysql-bin.000001',master_log_pos=771;

开始slave服务

start slave;

查看slave状态

show slave status\G;

其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。

验证

主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:

mysql> create database hi_db;

Query OK, 1 row affected (0.00 sec)

mysql> use hi_db;

Database changed mysql> create table hi_tb(id int(3),name char(10));

Query OK, 0 rows affected (0.00 sec)

mysql> insert into hi_tb values(001,'bobu');

Query OK, 1 row affected (0.00 sec)

然后查看从数据时候有表和数据;

mysql> show databases;

 

 

(2)slave常用查询

0)查看日志开启状态

show variables like 'log_%';

1)查看所有binlog日志列表

show master logs;

2)查看最新一个binlog日志的编号名称,及其最后一个操作事件结束点

show master status;

3)刷新log日志,立刻产生一个新编号的binlog日志文件,跟重启一个效果

flush logs;

4)清空所有binlog日志

reset master;

5)日志查看,因为是二进制文件没法用vi等打开,可以用mysql的mysqlbinlog打开

/usr/bin/mysqlbinlog /home/logs/mysql-bin.000001

 

 

(3)登录slave

得到主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复。

show master status;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql_bin.001432 | 64787138 | | | |

+------------------+----------+--------------+------------------+-------------------+

 

先保证从服务器的slave是关闭的

stop slave

 

slave从当前二进制日志名和偏移量

change master to master_host='54.223.182.40', master_user='odsdb',master_password='xqkP0kplDAIIMPkS',master_log_file='mysql_bin.001432',master_log_pos=64787138;

 

查看主从库状态。

-- master

show master status\G

-- slave

SHOW SLAVE STATUS\G

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值