您现在的位置是:网站首页> 内容页

Mysql 多主一从数据备份

  • HappyLuke乐动娱乐网
  • 2019-05-24
  • 109人已阅读
简介Mysql多主一从数据备份概述对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库中的数据一致。这样做有如下几点好处:可以做灾备,其中一个坏了可以切换到另一个。可以做

Mysql 多主一从数据备份

概述

对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库中的数据一致。

这样做有如下几点好处:

    可以做灾备,其中一个坏了可以切换到另一个。可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。 对于异地热备,尤其适合灾备。

MySQL 主从复制的方式

1 Master 数据库操作的任何数据库的时候,都会将操作记录写入到biglog日志文件当中2 Slave 数据库通过网络获取到主数据库的日志文件,写入本地日志系统 ,然后一条条的将数据库事件在数据库中完成3 Slave 重做中继日志中的事件将 Master 上的改变反映到它自己的数据库中所以两端的数据是完全一样的。

环境

操作系统:CentOS

MySQL版本:mysql-5.6.26 (主从两者数据库版本必须保持一致)

Master1 配置

1 开启binlog日志功能

vim /etc/my.cnf

server-id=6log-bin=mysql-bin

2 重启mysql 登陆并授权

mysql -uroot -p123456

grant replication slave replication client on *.* to "repl"@"10.211.55.7" identified by "123456"

ip地址为slave服务器的ip地址

3 查看日志状态

show master status

Master2 配置

1 开启binlog日志功能

vim /etc/my.cnf

server-id=8log-bin=mysql-bin

2 重启mysql 登陆并授权

mysql -uroot -p123456

grant replication slave replication client on *.* to "repl"@"10.211.55.7" identified by "123456"

ip地址为slave服务器的ip地址

3 查看日志状态

show master status

Slave 配置

1 修改配置文件 (注意 slave的默认数据库启动的端口必须关闭 service mysql stop)

vim /etc/my.cnf

[mysqld] binlog-ignore-db=mysql binlog_format=mixed expire_logs_days=7 slave_skip_errors=1062 relay_log=mysql-relay-bin log_slave_updates=1[mysqld_muliti] mysqld=/usr/bin/mysqld_safe mysqladmin=/usr/bin/mysqladmin user=root password=123456[mysqld6] port=3306 datadir=/home/mysql/data6 pid-file=/home/mysql/data6/mysql.pid socket=/home/mysql/data6/mysql.sock user=mysql server-id=7[mysqld8] port=3307 datadir=/home/mysql/data8 pid-file=/home/mysql/data8/mysql.pid socket=/home/mysql/data8/mysql.sock user=mysql server-id=7

2 初始化生成目录

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data6 &/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data8 &

3 修改目录权限

chown -R mysql /home/mysql/data6

chown -R mysql /home/mysql/data8

4 启动服务

mysqld_multi --defaults-file=/etc/my.cnf start 6

mysqld_multi --defaults-file=/etc/my.cnf start 8

5 登录测试(并分别做授权)

mysql -P 3306 -S /home/mysql/data6/mysql.sock

mysql> change master to master_host="10.211.55.6" master_user="repl" master_password="123456" master_port=3306 master_log_file="mysql-bin.000001" master_log_pos=120mysql> start slave

mysql -P 3307 -S /home/mysql/data8/mysql.sock

mysql> change master to master_host="10.211.55.8" master_user="repl" master_password="123456" master_port=3306 master_log_file="mysql-bin.000001" master_log_pos=120mysql> start slave

ok 就这样 完成了

文章评论

Top