- 论坛徽章:
- 0
|
环境: master:192.168.161.221 centos6.0 x86_64 mysql5.5.15 slave:192.168.161.227 centos6.0 x86_64 mysql5.5.15 注:master 的mysql版本最好与 slave 保持一致
master: 登录master,新建一个测试库: mysql> mysql -uroot -p
mysql> create database new;
创建一个同步用户,限定只能在192.168.161.227登录 mysql> grant replication slave on *.* to 'test1'@'192.168.161.227' identified by 'test1';
修改配置文件: vim /etc/my.cnf [mysqld] server_id=1 #主机标识,整数 binlog-do-db=new #需要备份的数据库,多个写多行 binlog-ignore-db=mysql #不需要备份的数据库,多个写多行 log-bin=mysql-bin #二进制日志文件,确保此文件可写 [msyqld_safe] log-error=/data/mysql/log/mysqld.log #错误日志文件
重启服务 /etc/init.d/mysqld restart
mysql -uroot -p
mysql> show master status;
slave: 登录slave,新建一个测试库: mysql> mysql -uroot -p
mysql> create database new;
修改配置文件: [mysqld] server_id=2 #从机标识,整数 log-bin=mysql-bin #二进制日志文件,确保此文件可写 replicate-do-db=new #要复制的数据库,多个写多行 replicate-ignore-db=mysql #不要复制的数据库,多个写多行
[msyqld_safe] log-error=/data/mysql/log/mysqld.log
重启服务 /etc/init.d/mysqld restart
mysql> mysql -uroot -p
mysql> slave stop;
//master_log_file,master_log_pos的值通过 master端的 show master status 获得 mysql>
change master to
master_host='192.168.161.221',master_user='test1',master_password='test1',master_log_file='mysqlbin.000021',master_log_pos=107; mysql>slave start
测试: //在master端创建表,插入数据 master端: mysql> use new;
mysql> create table xxx (id int(5),username varchar(20));
mysql> insert into xxx values(123,'hhhhh');
//slave端检测,如能检测到master端创建的表及插入的数据,则说明配置成功。 slave端: msyql> use new;
mysql> show tables;
mysql> desc tables;
mysql> select * from xxx;
互为主从:
修改原slave端(192.168.161.227)配置: vim /etc/my.cnf [mysqld] binlog-do-db=new binlog-ignore-db=mysql
重启服务 /etc/init.d/mysqld restart
修改原master端(192.168.161.221)配置: vim /etc/my.cnf [mysqld] replicate-do-db=new replicate-ignore-db=mysql
重启服务 /etc/init.d/mysqld restart
mysql> mysql -uroot -p
mysql> slave stop;
//master_log_file,master_log_pos的值通过 show master status 获得 mysql> change master to
master_host='192.168.161.227',master_user='test1',master_password='test1',master_log_file='mysql-bin.000022',master_log_pos=107; mysql>slave start
测试: //在master(原slave)端创建表,插入数据 mysql> use new;
mysql> create table xxxx (id int(5),name varchar(20),price int(3));
mysql> insert into xxxx values(123,'aaaaa',1);
//slave(原master)端检测,如能检测到master(原master)端创建的表及插入的数据,则说明配置
成功。 msyql> use new;
mysql> show tables;
mysql> desc tables;
mysql> select * from xxxx;
至此:mysql双机热备配置完成 |
|