linux下mysql双主热备

 两台MySQL均要开启binlog日志功能,开启方法:在MySQL配置文件[MySQLd]段中加上log-bin=MySQL-bin选项。

 两台MySQL的server-ID不能一样,默认情况下两台MySQL的serverID都是1,需将其中一台修改为2即可。

 

1.A服务器上创建数据库并导入数据库

 [root@dns /]# mysql -u root -p

  mysql> show databases;

  mysql> create database cdn;

  mysql> use cdn;

  mysql> source /opt/cdn.sql      #source后面指定导入数据库文件的位置

2.B服务器上创建数据库并导入数据库。

 

 [root@dns1 /]# mysql -u root -p

  mysql> show databases;

  mysql> create database cdn;

  mysql> use cdn;

  mysql> source /opt/cdn.sql  

3.在A和B服务器上,增加一个用户账号(backup)作为同步用户账号.

A: mysql> Grant replication slave on *.* to backup@'10.16.0.247' identified by '1234';


B: mysql> Grant replication slave on *.* to backup@'10.16.0.246' identified by '1234';


4.在B服务器上用如下命令测试backup用户能连上A服务器

 [root@dns /]# mysql -u backup -p -h 10.16.0.246

 

5.停掉A和B服务器上的mysql服务。

 

6.A 服务器

 

  [root@dns /]#vi /etc/my.cnf

 

  对文件进行编辑或修改:

       server-id=1

       log-bin=mysql-bin 
       binlog-do-db=cdn

       重起数据库服务。

 

   B 服务器

   [root@dns1 /]#vi /etc/my.cnf

       server-id=2

       master-host=10.16.0.246
       master-user=backup      
       master-password=1234
       master-port=3306        
       master-connect-retry=60        
       replicate-do-db=cdn        

   

7.启动A服务器mysql服务。

 

8.输入show master status;

 

 mysql> show master status; 

 

          +---------------------+----------+--------------+------------------+
| File         |  Position  |  Binlog_Do_DB   | Binlog_Ignore_DB |
+-----------------+----------+--------------+------------------+
| mysql-bin.000008 |     106   | cdn      |    manual,mysql   |
+-----------------+----------+--------------+------------------+
记录File 和 Position 项目的值mysql-bin.000008和106。

 

9.在B服务器上,停止slave的服务,并配置连接A服务器参数。

 

   mysql> slave stop;


   
mysql> CHANGE MASTER TO
-> MASTER_HOST="10.16.0.246",       
-> MASTER_USER="backup",            
-> MASTER_PASSWORD="1234",          
-> MASTER_LOG_FILE="mysql-bin.000008",             
-> MASTER_LOG_POS=106;

 

   开启slave的服务 
   mysql> slave start;

 

10.在B服务器上输入show slave status\G;查看状态。

 

与之上相同的操作,在B服务器执行。不同的是server-id不用改变,主服务器换为B

 

停掉A和B服务器上的mysql服务。

 

11.B 服务器

 

  [root@dns /]#vi /etc/my.cnf

 

  对文件进行编辑或修改:

       log-bin=mysql-bin 
       binlog-do-db=cdn

 

   A 服务器

   [root@dns1 /]#vi /etc/my.cnf

       master-host=10.16.0.247
       master-user=backup      
       master-password=1234
       master-port=3306        
       master-connect-retry=60        
       replicate-do-db=cdn

 

12.启动B服务器mysql服务。


 mysql> show master status; 

 

          +---------------------+----------+--------------+------------------+
| File         |  Position  |  Binlog_Do_DB   | Binlog_Ignore_DB |
+-----------------+----------+--------------+------------------+
| mysql-bin.000008 |     106   | cdn      |    manual,mysql   |
+-----------------+----------+--------------+------------------+

13.在A服务器上,停止slave的服务,并配置连接B服务器参数。

 

   mysql> slave stop;


   
mysql> CHANGE MASTER TO
-> MASTER_HOST="10.16.0.247",       
-> MASTER_USER="backup",            
-> MASTER_PASSWORD="1234",          
-> MASTER_LOG_FILE="mysql-bin.000008",             
-> MASTER_LOG_POS=106;

 

   开启slave的服务 
   mysql> slave start;

 

14.在A服务器上输入show slave status\G;查看状态。

你可能感兴趣的:(数据库,linux,mysql,休闲,mysql双活)