虚拟机安装 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:
service mysqld restart
查看二进制日志开启状态:
创建用户:
给用户授权:
查看 Master 状态:
配置 Slave 从服务器
编辑 /etc/my.cnf
,添加server-id
:
连接 Master 主服务器:
指定主库的地址、用户名以及密码,还可以指定端口MASTER_POST
,更多参数参考 MYSQL文档。
MASTER_LOG_FILE
以及MASTER_LOG_POS
这两个参数指的是主库的日志文件以及文件位置,参照主库的状态命令:
SHOW MASTER MASTER;
启动 Slave 从服务器:
start slave;
查看从服务器状态:
show slave status \G;
测试
在主库中新建一个数据库,然后在从库中查看:
// Master 新建数据库
CREATE DATABSES test;
// SLAVE 查看数据库
SHOW DATABASES;
如果一致,则配置成功。
如果不一致,则可以参考下方的错误提示。
错误提示
UUID 重复
我使用了虚拟机的克隆功能,所以导致了主库和从库的UUID重复的问题。
查看UUID:
SHOW VARIABLES LIKE 'server_uuid';
这种问题在真实环境下应该是不存在的,除非文件完全拷贝。
官方文档上说,这个 uuid 是只读的,不建议修改。
如果一定要修改,可以查找auto.cnf
文件,然后修改它。
修改之后,重启 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'。
其他同学遇到的问题,意外重启或误删文件引起的。这里要注意,我们在配置的过程中。
解决的思路如下:
重启主库
给从库重新授权
-
在从库执行以下命令
slave stop; reset slave; slave start;