MYSQL互为主从
操作环境:
系统环境:centos6.5_x64
Mysql-A:192.168.153.131
Mysql-B:192.168.153.140
Mysql安装已经完成
防火墙,selinux已关闭
MYSQL-A操作
1、配置文件修改
[root@DB2 ~]# vim /etc/my.cnf
2、启动mysql后,登录mysql,新建同步用户
[root@DB2 ~]# service mysqld start
[root@DB2 ~]# mysql
图中的mysql-bin.000003就是最新的日志文件名称,Position是bin日志结束的位置,这两个值会在主机B中使用
mysql> grant all on *.* to test@'%' identified by '123';
Query OK, 0 rows affected (0.01 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 229 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
MYSQL-B操作
1、配置文件修改
[root@DB ~]# vim /etc/my.cnf
2、启动mysql后,登录mysql,新建同步用户
[root@DB ~]# service mysqld start
[root@DB ~]# mysql
mysql> grant all on *.* to test@'%' identified by '123';
Query OK, 0 rows affected (0.01 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 229 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
主机B配置完成,现在进行同步配置
同步配置
MYSQL-A操作
mysql> change master to
-> master_host='192.168.153.140',
-> master_user='test',
-> master_password='123',
-> master_log_file='mysql-bin.000003',
-> master_log_pos=229;
Query OK, 0 rows affected (0.04 sec)
这里的master_host是指主机B的ip地址,master_uesr是执行同步操作的用户名,master_password是执行同步的用户密码,master_log_file是主机B的bin-log日志,master_log_pos是从bin-log日志开始同步的位置
开启同步,并查看同步设置是否成功
此处为代码块
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status \G;
MYSQL-B操作
mysql> change master to
-> master_host='192.168.153.131',
-> master_user='test',
-> master_password='123',
-> master_log_file='mysql-bin.000003',
-> master_log_pos=229;
Query OK, 0 rows affected (0.03 sec)
开启同步,并查看同步设置是否成功
此处为代码块
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status \G;
同步测试:
在A主机或者B主机上做都可以。
在A上新建一个数据库
mysql> create database test2;
在B上可以查看到,之后再B上给数据库中插入信息,则在A上也可以查看的到:
mysql> create table users(id int(16),name char(16),sex varchar(64));
成功!!!
MYSQL-A创建数据库
MYSQL-B为数据库插入信息
如下是测试代码
1、MYSQL-A创建数据库
mysql> create database test2;
Query OK, 1 row affected (0.01 sec)
2、MYSQL-B查看数据库test2
mysql> show databases;
3、MYSQL-B进入数据库并插入数据
mysql> use test2;
Database changed
mysql> create table users(id int(16),name char(16),sex varchar(64));
Query OK, 0 rows affected (0.00 sec)
4、最后在MYSQL-A上可以看到MYSQL-B插入在test2数据库的内容即为成功!
进入test2数据库并查看是否有插入数据
mysql> use test2;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;