Linux系统如何设置mysql数据库主从以及互为主从 – 21运维
通知: .-...

Linux系统如何设置mysql数据库主从以及互为主从

mysql 21运维 2794浏览 0评论

首先,我们需要两台服务器且每个上边都安装有mysql,方便测试,直接拿wdcp集成的lamp环境安装包测试:
主mysql服务器:master  192.168.0.1
从mysql服务器:slave   192.168.0.2

1、主从服务器要求

  1.1、版本一致
  1.2、启动mysql
2、修改主从服务器两个参数:
vi /www/wdlinux/etc/my.cnf
 log-bin=mysql-bin   //启用二进制日志
server-id=1       //服务器ID,默认是1,随便取一个,只要master和slave不同即可。

都修改完以后重启mysql使其生效:service mysql restart

3、在主mysql服务器上建立帐户并授权slave:
  mysql -uroot -pwest263  

GRANT REPLICATION SLAVE ON *.* to 'west263test'@'192.168.0.2' identified by 'root3306'; //192.168.0.2授权从mysql的IP地址,不建议使用%,确保服务器安全。
4、登录主mysql服务器的mysql,查询master的状态
   mysql>show master status;
   +——————+———-+————–+——————+
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   +——————+———-+————–+——————+
   | mysql-bin.000004 |      571 |              |                  |
   +——————+———-+————–+——————+
   注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化.
5、配置从mysql服务器Slave:

mysql>change master to master_host='192.168.0.1',master_user='west263test',master_password='root3306',master_log_file='mysql-bin.000004',master_log_pos=571;   //注意不要断开,“571”是刚才的pos位置号  
mysql>start slave;    //启动从服务器复制功能
mysql>show slave status\G;

Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.1  //主服务器地址
Master_User: west263test         //授权帐户名,尽量避免使用root
Master_Port: 3306           //数据库端口,部分版本没有此行
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 571        //#同步读取二进制日志的位置,大于等于>=Exec_Master_Log_Pos
Slave_IO_Running: Yes       //此状态必须YES
Slave_SQL_Running: Yes       //此状态必须YES

以上操作过程,主从服务器配置完成。
  
6、主从服务器测试:

主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:

 
 mysql> create  database  west263db;
  Query OK, 1 row affected (0.00 sec)

  mysql> use west263db;
  Database changed

  mysql>  create table west263tb(test201 varchar(10));
  Query OK, 0 rows affected (0.00 sec)
 
  mysql> insert into west263tb values('test201');
  Query OK, 1 row affected (0.00 sec)

  mysql> show databases;
   +--------------------+
   | Database           |
   +--------------------+
   | information_schema |
   | west263db              |
   | mysql              |
   | test               |
   +--------------------+
   4 rows in set (0.00 sec)

从服务器Mysql查询:

   mysql> show databases;

   +--------------------+
   | Database           |
   +--------------------+
   | information_schema |
   | west263db             |          //I'M here,大家看到了吧
   | mysql              |
   | test               |
   +--------------------+
   4 rows in set (0.00 sec)

   mysql> use west263db
   Database changed
   mysql> select * from west263tb;    //可以看到在主服务器上新增的具体数据
   +------+------+
   | id   | name |
   +------+------+
   |    1 | bobu |
   +------+------+
   1 row in set (0.00 sec)

 

以上主从配置完毕,现在下边配置互为主从。注意:此时mysql从服务器只可以读取mysql主服务器数据。单独连接该mysql从服务器l插入的数据不会同步到主mysql服务器。所以下边我们需要配置互为主从,使从msyql服务器添加的数据也可以同步到主mysql服务器中。对从服务器做如下设置,将其作为主mysql服务器,之前的主mysql服务器变为从mysql服务器即角色互变:

1,在当前的主服务器上建立帐户并授权slave:
登陆mysql:mysql -uroot -pwest263 

GRANT REPLICATION SLAVE ON *.* to ‘west263test’@’192.168.0.1’ identified by ‘west263test’;  //192.168.0.2将要设置为从mysql服务器的的IP地址

2,从主服务器的mysql,查询master的状态,

mysql>show master status;

   注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

3,配置从服务器Slave:

   mysql>change master to master_host=’192.168.0.2′,master_user=’west263test’,master_password=’west263test’,master_log_file=’mysql-bin.000004′,master_log_pos=283;   //注意不要断开,“308”是刚才的pos位置号237.145

change master to master_host=’192.168.3.201′,master_user=’west263test’,master_password=’west263test’,master_log_file=’mysql-bin.000001′,master_log_pos=281;
   Mysql>start slave;    //启动从服务器复制功能

show slave status\G; //检查从服务器复制功能状态 

下边互为主从配置完毕。 现在我们开始简单测试是否成功,从任何一个服务器添加或删除都可以从另外一个mysql服务器中同步。
从192.168.0.1 建立新的mysql,从0.2上可以看到。反之依然。

转载请注明:21运维 » Linux系统如何设置mysql数据库主从以及互为主从

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 从服务器取消slave角色: stop slave; reset slave; 执行这个两个命令后重启mysql。
    21运维2015-10-17 17:49 回复