Linux搭建MySql主从复制
Posted 未来.....
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux搭建MySql主从复制相关的知识,希望对你有一定的参考价值。
Linux搭建mysql主从复制
概述:
-
复制是指将主数据库的DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。
-
MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。
优点:
- 主库出现问题,可以快速切换到从库提供服务。
- 可以在从库上执行查询操作,从主库中更新,实现读写分离,降低主库的访问压力。
- 可以在从库中执行备份,以避免备份期间影响主库的服务。
1、创建一台全新的linux
提示:使用如果MySQL里面已经存在数据,不建议在作为主从集群搭建。
2、安装MySQL
- 创建完成后安装【MySQL】
3、 配置MySQL
3、1 安装vim编辑
vim: 和vi功能一样,但是可以将注释的内容呈现为蓝色,以便区分是否被注释。
yum -y install vim*
3、2 使用vim编辑配置文件
vim /etc/my.cnf
将下面的内容添加到文件下面
#mysql 服务ID,保证整个集群环境中唯一
server-id=1
#mysql binlog 日志的存储路径和文件名
log-bin=/var/lib/mysql/mysqlbin
#错误日志,默认已经开启
#log-err
#mysql的安装目录
#basedir
#mysql的临时目录
#tmpdir
#mysql的数据存放目录
#datadir
#是否只读,1 代表只读, 0 代表读写
read-only=0
#忽略的数据, 指不需要同步的数据库
binlog-ignore-db=mysql
#指定同步的数据库
#binlog-do-db=db01
3、3配置完成后重启MySQL
service mysql restart;
如果这里提示
3、4验证MySQL是否配置成功
- 使用navicat进行查询验证
show variables like '%server_id%';
- 查看主节点的状态
show master status;
字段含义:
- File : 从哪个日志文件开始推送日志文件
- Position : 从哪个位置开始推送日志
- Binlog_Ignore_DB : 指定不需要同步的数据库
3、5 创建同步数据账户,并进行授权操作
grant replication slave on *.* to 'root'@'192.168.1.2' identified by 'root';
出现ERROR 1819解决方法:
1、修改密码验证强度:
set global validate_password_policy=LOW;
2、修改密码长度
set global validate_password_length=6;
注意,密码长度最低为4位,设置的密码长度小于4时,默认改成4
- 查看是否配置成功
4、配置从节点
4、1 克隆虚拟机
- 将主节点关机,右击选择管理----》点击克隆
4、2 配置从节点MySQL配置文件
vim /etc/my.cnf
#mysql服务端ID,唯一
server-id=2
#指定binlog日志
log-bin=/var/lib/mysql/mysqlbin
4、3重启MySQL
service mysqld restart
4、4 验证配置是否成功
show variables like '%server_id%';
发现设置的id已经显示,说明已经配置成功
5、同步配置
5、1 为从节点设置主节点
change master to master_host= '192.168.31.234', master_user='root', master_password='123456', master_log_file='mysqlbin.000003', master_log_pos=154;
主要字段含义:
- master_host:主服务器的IP地址
- master_user:主节点的账号
- master_password:主节点的密码
- master_log_file:主节点的名称
- master_log_pos:日志推送位置
5、3 开始同步
start slave
5、4 查看同步状态
show slave status\\G;
5、5 发现Slave_Io_Running的状态为connecting,此时查看错误信息。
- 错误信息提示拒绝用户访问,发现主节点的密码没有设置正确,再次为子节点设置主节点信息。
- 重启MySQL
service mysqld start
- 再次查看状态。
5、5 发现Slave_Io_Running的状态为no,此时查看错误信息。
- 通过错误信息发现原来使UUID冲突,此时修改从节点的UUID
vim var/lib/mysql/auto.cof
- 将文件中的uuid随意修改一个数值,使其和主节点的UUID不一样即可。
5、6重启数据库
service mysqld restart
5、7再次查看状态
以上是关于Linux搭建MySql主从复制的主要内容,如果未能解决你的问题,请参考以下文章