怎么实现MySQL数据库的双热机备份

发布网友 发布时间:2022-04-25 16:56

我来回答

2个回答

懂视网 时间:2022-04-30 15:55

//


mysql>delete from mysql.user where user=‘‘; //删除匿名用户


mysql>select user,host from mysql.user;


mysql>delete from mysql.user where host=‘127.0.0.1‘;


mysql>delete from mysql.user where host=‘localhost‘;


mysql>create user ‘zcs‘@‘127.0.0.1‘ identified by ‘chengshan‘;


mysql>grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘chengshan‘ with grant option;


mysql>grant all privileges on *.* to ‘zcs‘@‘%‘ identified by ‘chengshan‘ with grant option;


mysql>flush privileges;


mysql>quit



登陆测试

[root@svr ~]# mysql -u root -p

Enter password: 


1.修改相关配置文件:

#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

#vi /etc/my.cnf


在[client]最后增加

default-character-set=utf8


在[mysqld]最后增加

lower_case_table_names=1 

transaction-isolation=READ-COMMITTED

event-scheduler=1

max_connections=2000


2.启动

/etc/init.d/mysql start

#netstat -anlt


3.停止

/etc/init.d/mysql stop


4.重新启动

/etc/init.d/mysql restart


5.设置自动启动

/sbin/chkconfig mysql on



二两台服务器都装好后,进行双机热备的配置(主从关系)

约定环境:两台服务器的主机名最好不一样,如一个是db1(主),一个是db2(从)。

可以通过修改/etc/sysconfig/network实现

两台数据库root密码为chengshan


1 进入主服务器

mysql –u root –p

密码:chengshan

mysql>下输入:show master status;  

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

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000002 |     107 |              |                  |

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

1 row in set (0.00 sec)


如果提示为空则需要在/etc/my.cnf 下的mysqld中添加

log-bin=mysql-bin

server-id=10


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




创建同步用户

grant replication slave on *.* to user1@192.168.0.99 identified by ‘123456‘;

//创建用户user1密码为123456,指定IP为从服务器可以访问的。


flush privileges;


修改/etc/my.cnf

在[mysqld]下修改即可:

[mysqld]

server-id = 1

log-bin=mysql-bin                //其中这两行是本来就有的,可以不用动,添加下面两行即可

binlog-do-db = opts2         //指定需要被同步的数据库名称如opts2

binlog-ignore-db = mysql     //指定不需要被同步的数据库名称如mysql自带的mysql或其他的数据库,如果不指定这两条默认全部都同步。

修改好后

service mysql restart      //重启mysql服务,不解释。如果成功则没问题。


主服务器配置完毕。






2 进入从服务器

首先修改/etc/my.cnf配置

[mysqld]                    //在[mysqld]段后修改

server-id = 2               //修改1为2

log-bin=mysql-bin           //默认配置,开启日志记录,不用改

replicate-do-db = opts2        //指定需要去主服务器发起同步的数据库名如opts2

replicate-ignore-db = mysql,information_schema,performance_schema

// 执行不需要进行同步的数据库名


service mysql restart     //不解释




用change mster 语句指定同步位置

mysql –u root –p

密码:chengshan

mysql>


创建同步用户

grant replication slave on *.* to user2@192.168.0.90 identified by ‘123456‘;

//创建用户user2密码为123456,指定IP为主服务器可以访问的。其实这句话可以不用打,这句话是给互相备份用的(主-主关系),不过配上也没事,没有设置权限。


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

mysql>change master to

->master_host=‘192.168.0.90‘,

->master_user=‘user1‘,

->master_password=‘123456‘,

->master_log_file=‘mysql-bin.000003 ‘,

->master_log_pos=107;


注:master_log_file, master_log_pos由主服务器(Master)查出的状态值中确定。也就是刚刚叫注意的。master_log_file对应File, master_log_pos对应Position。


mysqlbinlog mysql-bin.000003 > 0.txt

回车后,如成功会有OK提示,如果不成功则要重新设置slave。指令如下


mysql>stop slave;


mysql>reset slave;



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



flush privileges;



mysql>start slave;     //重新启动


mysql>show slave statusG;   //查看从服务器状态



# service mysql restart   //不解释


至此从服务器设置完成。

MySQL双机热备部署

标签:mysql   双机热备   数据库   

热心网友 时间:2022-04-30 13:03

1、还好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