标签归档:bin-log

CentOS6.3 mysql主从复制(注:mysql是通过yum源安装的)

mysql复制的优点主要包括以下3个方面:
1.如果主服务器出现问题,可以快速切换到从服务器提供的服务
2.可以在从服务器上执行查询操作,降低主服务器的访问压力
3.可以在从服务器上执行备份,以避免备份期间影响主服务器的服务

注意:一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从服务器查询,实时性要求高的数据仍然需要从主服务器获得

主服务器配置
我的服务器采用yum安装,如果想配置文件
设置默认编码等一些初始参数(my.cnf)(若无my.cnf, 则可cp /usr/share/mysql/my-small.cnf /etc/my.cnf)

前期准备数据:
两台服务器
master:192.168.1.111(主服务器)
slave:192.168.1.112(从服务器)
网络互通(关闭防火墙,关闭selinux)具体方法请看链接

一、主从服务器分别作以下操作

1.1、版本一致
1.2、初始化表,并在后台启动mysql
1.3、修改root的密码(新安装的mysql没有密码)
二、mysql主服务器配置master(192.168.1.111)

1)修改主服务器master:

2)给从服务器设置授权用户(创建复制帐号)

建立一个帐户mysync,并且只能允许从192.168.1.112这个地址上来登陆,密码是123456。
(如果因为mysql版本新旧密码算法不同,可以设置:set password for ‘mysync’@’192.168.1.112’=old_password(‘123456’))

3)在主服务器上设置读取锁定有效,确保没有数据库操作,以便获得一个一致性的快照

4)查看主服务器上当前的二进制日志名和偏移量值

5)目前主数据库服务器已经停止了更新操作,生成主数据库的备份,备份的方式有两种:

(1)cp全部的数据
如果主数据库的服务可以停止,那么直接cp数据文件应该最快的生成快照的方法:
(2)mysqldump备份数据方法
[root@localhost ~]# /usr/bin/mysqldump -uroot -p123456 test -l -F >/tmp/test.sql

6)主数据库备份完毕后,主数据库可以恢复写操作,剩下的操作只需要在从服务器上去执行:

mysql> unlock tables;

7)把主数据库的一致性备份恢复到从数据库上,把以上的压缩包解压到相应的目录即可

三、mysql从服务器配置slave(192.168.1.112)

1)修改从服务器slave:

2)将主库上备份的数据库恢复到从库(导入之前备份数据)

-v查看导入的详细信息
-f是当中间遇到错误时,可以skip过去,继续执行下面的语句

3)重启从库MYSQL

4)登录从库的MySQL命令行,执行:

5)启动从库连接,执行:

6)查看从库状态:

如果有出现以上结果,则配置成功

mysql-binlog日志恢复数据库

binlog日志用于记录所有更新了数据或者已经潜在更新了数据的所有语句。语句以“事件”的形式保存,它描述数据更改。当我们因为某种原因导致数据库出现故障时,就可以利用binlog日志来挽回(前提是已经配置好了binlog),接下来我们来配置

一、开启mysql-binlog日志

在mysql配置文件my.cnf加上如下配置

重启mysql

二、备份数据库

1)先查看一下当前数据库情况

2)备份数据到/tmp/test.sql

三、这时模拟误操作(插入3条数据,删除数据库)

删除数据

此时突然数据库损坏或者人为删除

四、此时数据库已经被完全破坏

1)用已经备份的/tmp/test.sql来恢复数据

2)还有三条数据没有恢复,怎么办。只能用bin-log来恢复

3)恢复成功

【总结】:mysql备份和bin-log日志

备份数据:

查看binlog日志:

导入之前备份数据:

恢复binlog-file二进制日志文件:

从某一(367)点开始恢复:

先查好那一点(用more来查看)

然后恢复:

重置binlog日志

mysql> flush logs;#关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。