mysql主从数据库配置(单向备份、双向备份)的方法详解

发布时间:2019-09-21编辑:脚本学堂
本文详细介绍了mysql主从数据库的配置方法,包括单向备份、双向备份两种情况,有需要的朋友参考下。

本节主要内容:
mysql主从数据库配置。

首先,来看mysql数据库的单向备份。

环境:
主数据库:
192.168.1.102
从数据库:
192.168.1.105

一、主数据库配置:
vi /etc/my.cnf
 

复制代码 代码示例:
[mysqld]
log-bin=mysql-bin
server-id=1
binlog-do-db=backup_db   # backup_db为要设置主从备份的数据库...多个就写多个
#binlog-do-db=test

二、添加一个用来做主从热备份的特殊mysql账号  用户名:slave  密码:123456
 

复制代码 代码示例:
mysql -uroot -p123456
mysql> grant replication slave on *.* to 'slave'@'192.168.1.105' identified by '123456';

三、主从数据库都关闭!
将主数据库内容scp到从数据库(确保两边数据一模一样!)
比如:
 

复制代码 代码示例:
scp -r 192.168.1.102:/data/database/mysql/backup_db/*  /data/database/mysql/backup_db/
cd /data/database/mysql
chown -R mysql:mysql backup_db
chmod -R 700 backup_db
#mysqladmin -uroot  -p123456  flush-tables
 

启动主数据库:
 

复制代码 代码示例:
mysql -uroot -p123456
mysql> show master status;
 

记得出来的那两项数据:
mysql主从

四、配置从数据库
vi /etc/my.cnf
 

复制代码 代码示例:
[mysqld]
server-id=2
master-host=192.168.1.102
master-port=3306
master-user=slave
master-password=123456
master-connect-retry=60

启动从数据库:
 

复制代码 代码示例:
mysql -uroot -p123456
mysql> slave stop;
 
mysql> change master to
master_host='192.168.1.102',
master_user='slave',
master_password='123456',
master_log_file='mysql-bin.000030', #上面标红的那个,必须一致或者比上面的数字小
master_log_pos=98;  #上面标红的那个,必须一致
 
mysql> slave start;

验证是否成功:
mysql> show slave status G;
如能看到:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
则证明配置成功。

注意:
请检查下mysql的配置文件,看是不是还有server-id=1之类的,防止被后面的重新覆盖。

##---------------
mysql的双向备份
在单向备份的基础上,再次做一次主从的反过来的配置即可,例如102服务器的my.cnf:
 

复制代码 代码示例:
[mysqld]
log-bin=mysql-bin
server-id=1
binlog-do-db=backup_db
 
master-host=192.168.1.105
master-port=3306
master-user=slave
master-password=123456
master-connect-retry=60

105服务器的my.cnf
 

复制代码 代码示例:
server-id=2
master-host=192.168.1.102
master-port=3306
master-user=slave
master-password=123456
master-connect-retry=60
log-bin=mysql-bin
 
binlog-do-db=backup_db
 

配置好后,可能根据需要得再执行:
 

复制代码 代码示例:
mysql> slave stop;
 
mysql> change master to
master_host='192.168.1.102',
master_user='slave',
master_password='123456',
master_log_file='mysql-bin.000030', #上面标红的那个,必须一致或比上面的数字小
master_log_pos=98; #上面标红的那个,必须一致
 
mysql> slave start;
 

至此,mysql主从配置全部完成。

>>> 更多内容,请访问:mysql主从复制mysql主从同步系列教程