mysql主从和主主备份

1.创建一个数据库用于测试同步;

mysql> create database dragon;

Query OK, 1 row affected (0.04 sec)

mysql> use dragon

Database changed

mysql> create table user(id int(5),name char(20));

Query OK, 0 rows affected (0.17 sec)

mysql> quit

2.修改主库my.cnf主要设置个不一样的ID,以及同步的数据库的名字,我一般用vim 来完成,vim /etc/my.cnf 在[mysqld]中加入内容如下

server-id=1

log-bin=binlog

binlog-do-db=dragon  #指明同步那些数据库

replicate-ignore-db=mysql  #指明不同步那些数据库

replicate-ignore-db=information_schema

port=3306

重启服务使得配置文件生效

[[email protected] ~]# service mysqld restart

Shutting down MySQL.                                       [确定]

Starting MySQL..                                           [确定]

[[email protected] ~]# mysql -uroot -p123

3.登录主库赋予从库权限账号,允许用户在主库上读取日志(用户名: admin密码:123456)

[[email protected] ~]# mysql -uroot -p123

mysql> grant replication slave on *.* to ‘admin‘@‘10.10.10.2‘ identified by ‘123456‘;

Query OK, 0 rows affected (0.01 sec)

在slave上测试账号是否能够被登陆:

[[email protected] ~]# mysql -uadmin -p123456 -h 10.10.10.1 -S/tmp/mysql.sock

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.5.33-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql>

4.slave机器获取mastre快照。有两种方法:一种是进入/var/lib/mysql/用tar方法备份

[[email protected] mysql]# cd /usr/local/mysql/data/

[[email protected] data]# tar czvf dragon.tar.gz dragon/

dragon/

dragon/db.opt

dragon/user.frm

[[email protected] data]# scp dragon.tar.gz 10.10.10.2:/usr/local/mysql/data

The authenticity of host ‘10.10.10.2 (10.10.10.2)‘ can‘t be established.

RSA key fingerprint is 01:77:02:41:8b:f3:86:3e:e9:58:b3:f2:91:34:91:90.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘10.10.10.2‘ (RSA) to the list of known hosts.

[email protected]‘s password:

dragon.tar.gz                                 100%  416     0.4KB/s   00:00

[[email protected] data]# tar zxf dragon.tar.gz

[[email protected] data]# service mysqld restart

5.在master1上查看dragon数据文件的信息(记录file、position,从库设置将会用到),并且锁住表;

mysql> flush tables with read lock;

Query OK, 0 rows affected (0.01 sec)

mysql> show master status;

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

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000024 |      563 | dragon       |                  |

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

1 row in set (0.00 sec)

mysql> unlock tables;

6.修改slave2的配置文件vim /etc/my.cnf,把server_id改为2或者添加server_id=2,总之server_id是一个与master的server_id不同数值即可,如果server_id与master相同会出现1593这个错误,可以进入数据库通过" show variables like "server_id""来查看servver_id是否被更改. 进入slave的数据库进行下一步同步配置。

mysql> slave stop;

Query OK, 0 rows affected (0.00 sec)

mysql>change master to master_host=‘10.10.10.1‘,master_user=‘admin‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000024 ‘,master_log_pos=563;

mysql> slave start;

Query OK, 0 rows affected (0.00 sec)

重启一下数据库:service mysqld restart;再进入数据库查看同步是否成功,slave_io_running和slave_sql_running均为YES。

mysql>show slave status\G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

在master1上创建一个表,再到slave上查看表有没有被同步到。

mysql> create table dragonttest(id int(4),name char(10));

Query OK, 0 rows affected (0.18 sec)

mysql>

mysql> show tables;

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

| Tables_in_dragon |

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

| dragonttest      |

| user             |

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

2 rows in set (0.00 sec)

配置主主备份:

这里才是主主复制的开始,其实方法很简单,我们之前可以实现主从复制也就是说,再把从做为主,主再做为从,就实现主主复制了,我是在主从复制完成后在此基础上去完成主主复制的。

1、编辑之前的从服务器,也就是现在的master2

vim /etc/my.cnf

加入如下内容:

binlog-do-db=dragon

replicate-ignore-db=test

replicate-ignore-db=mysql

replicate-ignore-db=information_schema

port=3306

2.重启服务

service mysqld restart

3、登录master2(master2 Ip地址为10.10.10.2)数据库赋予master数据库权限账号,允许用户在master主库(ip 为10.10.10.1)上读取日志(用户名: admin密码:123456)

mysql -uroot -p123

grant replication slave on *.* to ‘admin‘@‘10.10.10.1‘identified by ‘123456‘;

为验证账号我们可以在master1的机器上用命令作如下测试

mysql -u admin -p -h 10.10.10.2 -S/tmp/mysql.sock

4、master2上登录数据库记录file 和position

mysql> show master status;

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

| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| binlog.000004 |      106 | dragon   |                  |

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

1 row in set (0.00 sec)

5、在master上登录数据库做如下配置

mysql>stop slave;

mysql>CHANGE MASTER TO MASTER_HOST=‘10.10.10.2‘,MASTER_USER=‘admin‘,MASTER_PASSWORD=‘123456‘,MASTER_PORT=3306,MASTER_LOG_FILE=‘binlog.000004 ‘,MASTER_LOG_POS=106;        (请注意CHANGE 到pos=106为一行命令)

mysql>start slave;

mysql>show slave status\G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

看到上两个进程为数据库与另一边的master 已经建立连接

时间: 2024-08-30 08:17:01

mysql主从和主主备份的相关文章

mysql 主从配置 和 主主配置

一:主从配置 A机:192.168.1.67 (主) B机:192.168.1.20 (从) A机操作: 1:备份要做主从的数据库. mysqldump -uroot -pkobe24 -S /tmp/mysql.sock discuz > /home/discuz.back #备份discuz至/home/discuz.back. scp /home/discuz.back [email protected]:/home/discuz.back #远程复制到从服务器上. 2:修改my.cnf

MySQL主从同步与主主同步

MySQL复制: MySQL内建的复制功能是构建大型,高性能应用程序的基础.将MySQL的数据分布到多个系统上去,这种分布的机制,是通过将mysql的某一台主机的数据复制到其它主机(slave)上,并重新执行一遍来实现. 复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循坏,这些日志可以记录发送到从服务器的更新.当一个从服务器 连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器

Centos7配置mysql主从:一主多从

mysql主从复制原理1.首先master将数据更新记录到二进制binlog文件2.slave通过I/O线程向master请求binlog日志文件指定位置之后的内容3.master接收到slave的io请求之后,就会从binlog相应的位置点开始,给slave传日志4.slave接收到日志后,会写入本地的relay log中继日志中5.slave通过sql线程读取中继日志的内容,在数据库中执行相应的操作,到此为止,master和slave上的数据一致,之后slave服务器进入等待状态,等待mas

MySQL(三):MHA实现MySQL主从架构中主服务器的高可用,zabbix完成manager重启

MHA(Master High Availability)是目前在MySQL高可用方面相对成熟的一个解决方案,MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过于其它从节点获取额外信息来避免一致性方面的问题.MHA还提供了master节点的在线切换功能. MHA 服务有两种角色,MHA Manager(管理节点)和 MHA Node(数据节点): MHA Manager:通常单独部署在一台独立机器上管理多个 master/

mysql主从配置,innobackup备份

目的:19 作为 20 的从库 一在20上做一次全备份 /usr/bin/innobackupex-1.5.1--user=root --password=`cat /etc/savep` --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock  --slave-info--stream=tar /usr/local/backup | gzip >/usr/local/backup/db20.tar.gz 将 db20.tar.gz copy到

mysql主从集群定时备份脚本

#!/bin/bash dpath="/mysql_backup" mydays="7" username="root" mysql_pwd="redhat" xmysql="/application/mysql/bin/mysql -u$username -p${mysql_pwd}" xmysqldump="/application/mysql/bin/mysqldump  -u$userna

MySQL主从

mysql主从--1 [[email protected] ~]# rm -rf /usr/local/mysql         (删除之前安装的MySQL) [[email protected] ~]# cd /usr/local/src/ [[email protected] src]# wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-i686-glibc23.tar.gz [[email protected]

Mysql主从+Amoeba读写分离

一.安装环境 centos6.5 192.168.1.100 Amoeba-mysql centos6.5 192.168.1.101 mysql-主 centos6.5 192.168.1.102 mysql-从 二.Mysql 主从配置 在主MySQL192.168.1.101上配置 Vim /usr/local/mysql/etc/my.cnf server-id       = 1                     主库一定要比从库的数字小 binlog-do-db    = ba

MySql主从拓展2

mysql架构由小变大的演变过程 第一阶段 网站访问量日pv量级在1w以下.单台机器跑web和db,不需要做架构层调优.此时,数据往往都是每日冷备份的,但有时候如果考虑数据安全性,会搭建一个mysql主从 第二阶段 网站访问量日pv达到几万.此时单台机器已经有点负载,需要我们把web和db分开,需要搭建memcached服务作为缓存.也就是说,在这个阶段,我们还可以使用单台机器跑mysql去承担整个网站的数据存储和查询.如果做mysql主从,目的也是为了数据安全性. 第三阶段 网站访问量日pv达

部署社交网站- MYSQL主从 与 MFS 文件系统

案例概述 公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制.社交网站的第一个版本部署在LNMP平台之上,前端为 Nginx服务器,通过 fastcgi协议访问后端的PHP服务器.为了保证数据安全,要求搭建 MYSQL数据库主从集群. 社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放.针对共享存储可用的开源方案有很多,如MFS. FastDFS等.公使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器