MySQL数据库双机热备------主-从备份配置

MySQL数据库双机热备------主-从备份配置

实验环境:

主数据库 192.168.1.1 centos6.5 x86_64 +MySQL5.5.35

从数据库 192.168.1.2 WindowsXP x64 +MySQL5.5.13

一、安装数据库

1.在centos6.5 x86_64 上面安装MySQL5.5.35数据库,下载rpm包的形式安装,在MySQL的官网上面下载。

MySQL-client-5.5.35-1.el6.x86_64.rpm

MySQL-server-5.5.35-1.el6.x86_64.rpm

2.WindowsXP x64 上面安装MySQL5.5.13,软件在网上获取。

二、两个数据库都修改root密码,并且开启远程访问权限。

1.# mysqladmin -u root -ppassword newpassword

Windows上面的是在dos下面进入到C:\Program Files\MySQL\MySQL Server 5.5\bin目录然后执行上面的命令。

2.mysql> grant all privileges on *.* to root@'% 'identified by 'newpassword';

mysql>flush privileges;

修改好之后,相互远程测试一下看是否能够相互远程。

三、主数据库配置

登陆mysql操作界面,在主服务器上为从服务器建立一个用来同步的连接帐户,该帐户必须授予REPLICATION SLAVE权限。因为从mysql版本3.2以后就可以通过REPLICATION对其进行双机热备的功能操作。

操作指令如下:

mysql> grant replication slave on*.* to bak@'192.168.1.2' identified by 'bak';

mysql> flush privileges;

创建好同步连接帐户后,我们可以通过在从服务器(Slave)上用bak帐户对主服务器(Master)数据库进行访问,看下是否能连接成功。在从服务器(Slave)上输入如下指令:

# mysql –h192.168.1.1 –u bak –p回车之后要求输入密码,密码为bak,如果登陆成功,则可以继续进行双击热备,否则请找到问题并解决。

修改配置文件 /etc/my.cnf打开在[mysqld]下修改即可:

[mysqld]

server-id= 1

log-bin=mysql-bin              #启用日志文件

binlog-do-db= test#需要同步的数据库

binlog-ignore-db= mysql #不需要同步的数据库

修改完配置文件后,保存后,重启一下mysql服务,如果成功则没问题

#servicemysql restart

登陆mysql 输入命令:

mysql>flush tables whit read lock;锁表以便在同步之前写数据进去。

mysql>show master status\G

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

File: mysql-bin.000003

Position: 1337

Binlog_Do_DB: test

Binlog_Ignore_DB: mysql

1 row in set(0.00 sec)

注意看里面的参数,特别前面两个File和Position,在从服务(Slave)配置主从关系会有用到的。

注:这里使用了锁表,目的是为了产生环境中不让进新的数据,好让从服务器定位同步位置,初次同步完成后,记得解锁。

mysql>unlock tables;

QueryOK, 0 rows affected (0.00 sec)

四、从数据库配置

修改配置文件 C:\Program Files\MySQL\MySQL Server 5.5 中的my.ini

因为这里面是以主-从方式实现mysql双机热备的,所以在从服务器就不用在建立同步帐户了,直接打开配置文件my.cnf进行修改即可,道理还是同修改主服务器上的一样,只不过需要修改的参数不一样而已。如下:

[mysqld]

server-id = 2

log-bin=mysql-bin

replicate-do-db = test

replicate-ignore-db =mysql,information_schema,performance_schema

修改完之后,重启windows上的mysql的服务。

Netmysql restart也可以手工去服务里面找到mysql重启。

五、利用change master 语句指定同步位置

在从服务器上面操作,这步是最关键的一步了,在进入mysql操作界面后,输入如下指令:

mysql>stopslave;          //先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。

mysql>change master to

>master_host='192.168.1.1',master_user='bak',master_password='bak',

> master_log_file=' ysql-bin.000003',master_log_pos=1337;

注:master_log_file,master_log_pos由主服务器(Master)查出的状态值中确定。也就是刚刚叫注意的。master_log_file对应File, master_log_pos对应Position。Mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。

如果遇到问题不成功,则需要重新设置slave命令如下:

mysql>stop slave;

mysql>reset slave;

之后停止slave线程重新设置。成功后,则可以开启slave线程了。

mysql>start slave;

六、测试

在从服务器上查看从服务器的状态,用如下指令进行查看

mysql> show slave status\G  如果出现以下信息

151150388.jpg

查看下面两项值均为Yes,即表示设置从服务器成功。

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

在主数据库的test库中建表写数据,查看从数据库中是否在同步。

七、结论

主从数据库的热备操作比较复杂,遵循的原则是每一步必须都调试成功,否则下面就无法进行了。Mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。所以要使用changemaster语句,这一点很重要。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章