mysql主从配置duxi_mysql主从配置

mysql的主从配置

1、主从简介

在现代企业中,数据库显得尤为重要,而储存数据的数据库选择的五花八门,但任何数据库都存在着一种隐患。

想几个问题:

用一台服务器存放数据,若此数据库服务器出问题导致数据库丢失怎么办?

业务量大了,数据多了,访问人多了,一台数据库无法保证服务器质量怎么办?

1.1、主从作用

实时灾备,用于故障切换

读写分离,提供查询服务

备份,避免影响业务

1.2、主从形式

aece8d61e36a6bffdaea6c4d0ddc01ce.png

一主多从

主主复制

一主多从

多主一从

联级复制

2、主从复制原理

95d97f36fa5f7feab61fff37bf718928.png

主从复制步骤:

主库将所有的写操作记录到binlog日志中并且生成一个log dumo线程,将binlog日志传给从数据库的I/O线程

从数据库生成两个线程,一个SQL线程,一个I/O线程

I/O线程去请求主库的binlog,并且将得到的binlog日志写道reay log(中继日志)文件中

SQL线程会读取relay log文件日志中,并且解析具体操作,来实现组从一致。

3、主从复制配置

配置步骤:

确保主从数据库数据一样

在主数据库里面创建一个同步账号授权给从库

配置主数据库(配置文件)

配置从数据库(配置文件)

准备两台数据库:

数据库角色

IP

应用系统版本

有无数据

主数据库

192.168.7.10

radhat7

从数据库

192.168.7.11

radhat7

数据库安装步骤省略。。。。。

3.1、主从一致

主服务器

# mysqldump -uroot -p123 --all-databases > all.sql

# scp all.sql root@192.168.7.11

从服务器

# ls

all.sql

# mysql -uroot -p123 < all.sql

3.2、主数据库创建同步账号

mysql> CREATE USER 'repl'@'192.168.7.11' IDENTIFIED BY 'repl123'

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.7.11';

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.7.11';

3.3、修改主数据库配置文件

# vim /etc/my.cnf

[mysqld]

basedir = /usr/local/mysql

datadir = /opt/data

socket = /tmp/mysql.sock

port = 3306

pid-file = /opt/data/mysql.pid

user = mysql

symbolic-links=0

log-error=/var/log/mysqld.log

server-id=1

log-bin=mysql-bin

skip-name-resolve

# service mysqld restart

# mysql -uroot -p123

mysql> show master status;//数据库状态

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

| mysql-bin.000002 | 154 | | | |

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

1 row in set (0.00 sec)

mysql>

3.4、配置从数据库

# vim /etc/my.cnf

[mysqld]

basedir = /usr/local/mysql

datadir = /opt/data

socket = /tmp/mysql.sock

port = 3306

pid-file = /opt/data/mysql.pid

user = mysql

server-id=2

relay-log=mysql-relay-bin

symbolic-links=0

log-error=/var/log/mysqld.log

skip-name-resolve

# service mysqld restart

# mysqld -uroot -p123

//配置启动从数据库

mysql> CHANGE MASTER TO

-> MASTER_HOST='192.168.7.11';

-> MASTER_USER='repl',

-> MASTER_PASSWORD='repl123',

-> MASTER_LOG_FILE='mysql-bin.000002',

-> MASTER_LOG_POS=154;

mysql> start slave;

mysql> show slave status \G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.7.11

Master_User: lzj

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000002

Read_Master_Log_Pos: 154

Relay_Log_File: mysql-relay-bin.000008

Relay_Log_Pos: 367

Relay_Master_Log_File: mysql-bin.000002

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

效果:

主mysql

b5b27ecf2ebf8e17e2c3faf4e922af4a.png

从mysql

90018280c33d4915ea554496d3bf2209.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值