Centos5.7下Mysql双机热备配置

环境
Master操作系统:Centos 5.7
Ip:222.123.44.65
Slave操作系统:Centos 5.7
Ip:222.123.44.66
根据安装方法的不同,数据库相关路径也不太一致,我用YUM安装,因些,数据库存放路径/var/lib/mysql,数据库配置文件路径/usr/share/mysql,数据库相关命令/usr/bin.
查看主库服务器/usr/share/mysql目录下的cnf文件
/usr/share/mysql/*.cnf
其中.cnf文档如下:
My-small.cnf     内存少于或等于64M,只提供很少数据库服务
My-medium.cnf   内存在32M-64M之间而且和其他服务一起使用,如web
My-large.cnf      内存在512M主要提供数据库服务
My-huge.cnf      内存在1G-2G,主要提供数据库服务
My-innodb-heavy-4G.cnf   内存有4G,主要提供较大负载数据库服务(一般服务器使用这个)
复制文件到/etc下并更名为my.cnf
Cp /usr/share/mysql/my-innodb-heavy-4G.cnf /etc/my.cnf
***Master端***
进入mysql,创建一个数据库repldb
Mysql>create database repldb;
创建一个用来同步的用户,指定只能在222.123.43.66登录
Mysql>grant replication slave on *.* to  'repldb'@'222.123.43.66'  identified by '123456';
打开my.cnf,并添加如下字段
Vi /etc/my.cnf
Server-id = 1
Log-bin = log
Binlog-do-db = repldb    //需要同步的数据库,如果没有本行,即表示同步所有数据库
Master-host = 222.123.44.66
Master-user = repldb
Master-password = 123456
Master-port = 3306
Master-connect-retry = 10
Replicate-do-db = repldb  //需要接收的数据库,如有多个数据库,每个数据库一行
重启master机的mysql服务
Service mysqld restart
进入mysql,执行
Mysql>slave start;
 
***Slave端***
进入mysql,创建一个数据库repldb
Mysql>create database repldb;
创建一个用来同步的用户,指定只能在222.123.43.65登录
Mysql>grant replication slave on *.* to  'repldb'@'222.123.43.65'  identified by '123456';
打开my.cnf,并添加如下字段
Vi /etc/my.cnf
Server-id = 2
Log-bin = log
Binlog-do-db = repldb
Master-host = 222.123.43.65
Master-user = repldb
Master-password = 123456
Master-port = 3306
Master-connect-retry = 10
Replcate-do-db = repldb  //需要接收的数据库,如有多个数据库,每个数据库一行
然后重启slave机的mysql
Service mysqld restart
在slaves机中进入mysql
Mysql>start slave;
 
****关键步骤****
把两台服务器上需要同步的数据库进行拷贝,保证这两台数据库初始状态一致
进行双向同步
双向同步就是把单向同步反过来在做一遍,但一定要注意操作顺序,这是成功的关键。
在master服务器上进入mysql
mysql> show master status;
+------------+----------+--------------+------------------+
| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------+----------+--------------+------------------+
| log.000011 |  4514237 | repldb      | mysql            | 
+------------+----------+--------------+------------------+
1 row in set (0.00 sec)
记录下log.000011 和4514237
 
在slave服务器上执行
mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
输入如下命令:
mysql> change master to
    -> master_host = '222.123.43.65',
    -> master_user = 'repldb',
    -> master_password = '123456', 
    -> master_log_file = 'log.000011',
    -> master_log_pos = 4514237;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave;                 //开始同步
Query OK, 0 rows affected (0.00 sec)
 
在slave服务器上进入mysql
mysql> show master status;
+------------+----------+--------------+------------------+
| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------+----------+--------------+------------------+
| log.000001 |  4502348 | repldb      |                  | 
+------------+----------+--------------+------------------+
1 row in set (0.00 sec)
记录下log.000001 和4502348
 
在master服务器上执行
mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
输入如下命令:
mysql> change master to
    -> master_host = '222.123.43.66',
    -> master_user = 'repldb',
    -> master_password = '123456', 
    -> master_log_file = 'log.000001',
    -> master_log_pos = 4502348;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave;                 //开始同步
Query OK, 0 rows affected (0.00 sec)
 
下面进行测试
mysql> slave processlist \G;  

你可能感兴趣的:(数据库,mysql,centos,数据同步,双机热备)