主服务器IP:192.168.58.128
从服务器IP:192.168.58.129

192.168.58.128主操作:

首先要保证主从两台数据库的版本,数据库表等一致, 本教程是基于5.7, 64位的mysql数据库, 系统是centos 5.7, 主从均为虚拟机

主节点配置:

编译/etc/my.cnf文件的[mysqld]下加入如下配置

server_id = 1 #主数据库端ID号
log-bin = mysql-bin #开启二进制日志
binlog-do-db = mytest #需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
auto_increment_offset = 1 #这个参数一般用在主主同步中,用来错开自增值, 防止键值冲突
auto_increment_increment = 1 #这个参数一般用在主主同步中,用来错开自增值, 防止键值冲突
log_bin_trust_function_creators = 1 #将函数复制到slave

重启mysql

service mysqld restart

登陆mysql

mysql -uroot -p1234

配置从服务器登录的用户密码,权限等, slave 为登录用户名, 192.168.58.129 为从库的ip,slpass 为从服务器登录的密码,请根据自身的情况配置

grant replication slave,replication client on . to ‘slave’@‘192.168.58.129’ identified by ‘slpass’;

刷新权限

FLUSH PRIVILEGES;

查看主节点状态:

show master status\G;
在这里插入图片描述

从节点(192.168.58.129)配置:

编译/etc/my.cnf文件的[mysqld]下加入如下配置

server_id = 2 #从节点的ID号,不能和主节点的一样
relay_log = relay-log #开启中继日志
read_only = ON #只读开启,实现读写分离

重启从节点mysql并配置:

service mysqld restart

登陆从节点mysql

mysql -uroot -p1234

#设置复制的主节点数据库,pos位置()

CHANGE MASTER TO MASTER_HOST=‘192.168.58.128’,MASTER_USER=‘slave’,MASTER_PASSWORD=‘slpass’,MASTER_LOG_FILE=‘mysql-bin.000002’,MASTER_LOG_POS=2518;

上面语句参数说明:

  • MASTER_HOST:主库ip,
  • MASTER_USER:上面主库配置从服务器登录的用户密码时配置的用户名
  • MASTER_PASSWORD: 上面主库配置从服务器登录的用户密码时配置的用户密码
  • MASTER_LOG_FILE:主库的数据库日志文件, 参考上面show master status\G; 得出的File 字段的值,
  • MASTER_LOG_POS:参考上面show master status\G; 得出的Position 字段的值

开启主从复制并查看状态:

  • 登录mysql后执行:START SLAVE;
    在这里插入图片描述
  • 登陆mysql后执行:show slave status\G;

红圈里面的 Slave_IO_Running 和 Slave_SQL_Running 均为 Yes , 是已经配置成功的标识

在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐