数据库主从配置是目前十分常见的技术,因此本文将讲述最基本配置方法。
- 首先需要多个mysql的服务,至少两个(可以是各个环境下的)
- 确认防火墙不会阻碍访问(这是一个容易忽视的问题)
- 数据库版本至少为5.5+,但不要是8以上(8以上的版本比较新,容易造成更多问题)
- 各服务器中需要相同的数据库名,和相同结构的表
确定好一台主服务器以后,安装上mysql,下面使用mysql5.7版本。(安装过程可参见其他帖子)
确保能正常使用后
- 首先创建一个专门用于主从配置的用户,不需要其他的权限,仅需主从权限
grant replication slave on *.* to '账号'@'从数据库IP' identified by '密码';
flush privileges;//执行完上面之后,这句必不可少
- 打开主库的binlog日志,并指定集群服务唯一ID,指定同步的数据库,在mysql的配置文件中添加下面三行,并重启mysql服务
server-id=1/ /服务ID,可随意指定,但保证唯一
log-bin=/var/lib/mysql/binlog //开启binlog
binlog-do-db=test //指定同步数据库
- 启动后进入mysql,选择mysql库,查看主库信息
mysql> show master status;
预期结果如下,很关键
- 配置从数据库,在从数据库的配置文件中添加集群服务ID即可,并重启
- 在5.5+版本中,mysql不支持在配置文件中添加主库的信息了,所以需要在mysql中执行语句来操作,如下:
mysql> CHANGE MASTER TO
MASTER_HOST='主库IP', MASTER_PORT=3306, MASTER_USER='主从配置的账号', MASTER_PASSWORD='它的密码', MASTER_LOG_FILE='主库信息,FILE字段', MASTER_LOG_POS=主库信息,Position;
- 执行上面成功后,启动从库
start slave;
- 在从数据库中查询状态
show slave status\G;
则表示成功! - 验证,在主库中插入一条数据,然后在子库中查询,数据存在则完成!