MySQL-主从配置

虚拟机安装 CentOS

这里要安装 CentOS 虚拟机最小化安装。

详细步骤:略。

安装完之后,配置网络,参考文档:

[VMWare 安装 CentOS7 后虚拟网络配置]

CentOS 上安装 MySQL

参考文档:

[CentOS7 安装 MySQL 5.7]

配置主从

克隆一台虚拟机

由于是本地测试,所以选择链接克隆即可,节省时间和物理时间。

配置IP

将两台虚拟的静态IP配置在同一网段下,不同IP,例如:192.168.95.150 和 192.168.95.151。

最好在设置一下主机名,以便识别:

hostnamectl set-hostname [主机名]

配置 Master 主服务器

开启二进制日志状态:

MySQL-主从配置_第1张图片
image

重启 MySQL:

service mysqld restart

查看二进制日志开启状态:

MySQL-主从配置_第2张图片
image

创建用户:

image

给用户授权:

image

查看 Master 状态:

MySQL-主从配置_第3张图片
image

配置 Slave 从服务器

编辑 /etc/my.cnf,添加server-id:

MySQL-主从配置_第4张图片
image

连接 Master 主服务器:

MySQL-主从配置_第5张图片
image

指定主库的地址、用户名以及密码,还可以指定端口MASTER_POST,更多参数参考 MYSQL文档。

MASTER_LOG_FILE以及MASTER_LOG_POS这两个参数指的是主库的日志文件以及文件位置,参照主库的状态命令:

SHOW MASTER MASTER;

启动 Slave 从服务器:

start slave;
image

查看从服务器状态:

show slave status \G;
MySQL-主从配置_第6张图片
image

测试

在主库中新建一个数据库,然后在从库中查看:

// Master 新建数据库
CREATE DATABSES test;
// SLAVE 查看数据库
SHOW DATABASES;

如果一致,则配置成功。

如果不一致,则可以参考下方的错误提示。

错误提示

UUID 重复

我使用了虚拟机的克隆功能,所以导致了主库和从库的UUID重复的问题。

查看UUID:

SHOW VARIABLES LIKE 'server_uuid';

这种问题在真实环境下应该是不存在的,除非文件完全拷贝。

官方文档上说,这个 uuid 是只读的,不建议修改。

如果一定要修改,可以查找auto.cnf文件,然后修改它。

image

修改之后,重启 MySQL。

主从配置成功的前提是:server_id 以及 server_uuid 必须不同。

1236 错误

查看日志可以得到以下这般的描述:

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'。

其他同学遇到的问题,意外重启或误删文件引起的。这里要注意,我们在配置的过程中。

解决的思路如下:

  1. 重启主库

  2. 给从库重新授权

  3. 在从库执行以下命令

     slave stop; 
     reset slave; 
     slave start;
    

你可能感兴趣的:(MySQL-主从配置)