怎样实现MySQL数据库双机热备份 MySQL数据同步

发布网友

我来回答

2个回答

懂视网

一、环境:

       1.安装Centos-6.5-x位系统的机器两台:

    host1:192.168.2.3

    host2:192.168.2.4  (互相能ping通)

       2.安装Mysql。 命令:Yum install mysql-*

二、配置:

       1、启动mysql。命令:service mysqld start

    设置mysql的root密码。命令:mysqladmin –u root password 回车后输入要设置的密码即可。

       2、创建数据库test1和表test1。

              Create database test1;

              Use test1;

              Create table test1(id int(5),name varchar(10));

       3.配置mysql配置文件:/etc/my.cnf.配置内容如下:

       Host1:

              [mysqld]

                     Server-id=1

                     Log-bin=bin-log

                     Binlog-ignore-db=mysql,test,infromation_schema

                     Binlog-do-db=test1

                     Master-host=192.168.2.4                    

        Master-port=3306

                     Master-user=root

                     Master-password=111

                     Master-retry-count=999

                     Master-connect-retry=60

Host2:

              [mysqld]

                     Server-id=2

                     Log-bin=bin-log

                     Binlog-ignore-db=mysql,test,infromation_schema

                     Binlog-do-db=test1

                     Master-host=192.168.2.3

                     Master-port=3306

                     Master-user=root

                     Master-password=110

                     Master-retry-count=999

                     Master-connect-retry=60

       4.重启mysql。命令:service mysqld restart

1.如果不能启动服务,则仔细检查配置文件是否写错,检查无误后关闭防火墙。命令:service iptables stop(chkconfig iptables off)。

2.Host1使用mysql –h host2.IP –u root –p 登录host2的mysql看是否成功

3.Host2使用mysql –h host1.IP –u root –p 登录host1的mysql看是否成功

       成功说明双机上的mysql服务和访问正常。

       5.配置授权。

Host1:        mysql>grant replivation slave on *.* to ‘root’@‘192.168.2.4’ identified by ‘host1中mysql的root密码’;

Host2:        mysql>grant replivation slave on *.* to ‘root’@‘192.168.2.3’ identified by ‘host2中mysql的root密码’;

 

       6.host1,host2分别登录本机mysql。Mysql –u root –p 回车输入密码。

              查看master和slave状态:

              命令:show master statusG;

                            Show slave statusG;

    Host1:

       技术分享

    Host2:

       技术分享

结果如上图所示,slave_IO_Running和slave_SQLRunning都为YES则表示配置成功。

如果出现slave_IO_Running:NO; Last_IO_Error: Got fatal error 1236 from master when  reading data from binary log:‘Client requested master to start  replication from impossible position‘

的错误,则是因为主机日志文件的配置问题。

解决:使用show master statusG;查看master的file和position的值,然后用一下命令设置:
mysql> stop slave;
mysql> change master to master_log_file=‘file值‘,master_log_pos=position值;
mysql> start slave;

7.测试:

分别在host1和host2的mysql-jhk-test1表中插入不同数据来测试。

      技术分享

结果显示双机实现互为热备份。删除数据和表测试(略)

[原创]CentOS下Mysql双机互为备份

标签:

热心网友

还好MySQL数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。实现MySQL数据库的热备份。 2、要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备MySQL的版本都要高于3.2,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。 3、设置主数据库服务器: a.首先查看主服务器的版本是否是支持热备的版本。然后查看my.cnf(类Unix)或者my.ini(Windows)中MySQLd配置块的配置有没有log-bin(记录数据库更改日志),因为MySQL的复制机制是基于日志的复制机制,所以主服务器一定要支持更改日志才行。然后设置要写入日志的数据库或者不要写入日志的数据库。这样只有您感兴趣的数据库的更改才写入到数据库的日志中。 server-id=1 //数据库的id这个应该默认是1就不用改动 log-bin=log_name //日志文件的名称, //这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称 binlog-do-db=db_name //记录日志的数据库 binlog-ignore-db=db_name //不记录日志的数据库以上的如果有多个数据库用","分割开 然后设置同步数据库的用户账号 MySQL> GRANT REPLICATION SLAVE ON *.* -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';4.0.2以前的版本, 因为不支持REPLICATION 要使用下面的语句来实现这个功能 MySQL> GRANT FILE ON *.* -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';设置好主服务器的配置文件后重新启动数据库 b.锁定现有的数据库并备份现在的数据 锁定数据库 MySQL> FLUSH TABLES WITH READ LOCK;备份数据库有两种办法一种是直接进入到MySQL的data目录然后打包你需要备份数据库的文件夹,第二种是使用MySQLmp的方式来备份数据库但是要加上"--master-data " 这个参数,建议使用第一种方法来备份数据库

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com