首先,我们需要两台服务器且每个上边都安装有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地址,不建议使用%,确保服务器安全。
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数据库主从以及互为主从