1.原理
mysql主从配置执行流程:
1)master会将变动记录到二进制日志里面;
2)master有一个I/O线程将二进制日志发送到slave;
3) slave有一个I/O线程把master发送的二进制写入到relay日志里面;
4)slave有一个SQL线程,按照relay日志处理slave的数据;
2.执行过程
1)开启master的二进制日志
2)开启slave的二进制日志
3)将slave指向master
4)开始复制
3. 操作过程
准备工作:
1.在VM环境下克隆一台虚拟机,两台虚拟机都安装mysql服务(保证安装mysql版本箱相同)
2.克隆后的
4.执行步骤
1.安装mysql解压版
-
1.1设置了root用户的密码为123456
-
1.2 把虚拟机克隆一份.
-
1.3 主从的ip
-
主:192.168.204.247
-
从:192.168.204.248
-
2.修改主数据库的my.cnf文件
-
2.1 执行命令
#vim /etc/my.cnf
-
2.2 修改内容
-
log_bin 日志文件名称,启用日志功能
-
server_id 给定一个值
-
-
2.3 重启mysql
service mysql restart
3.进入主数据库的客户端工具
#mysql -u root -p123456
4.新建一个myslave用户并赋予权限
-
4.1 命令:
- 表示任意数据库的任意表
- myslave 用户名
- 192.168.204.248 从数据库的ip,哪个客户端可以连接mysql服务端.
- 123456是myslave的密码
grant all privileges on *.* to 'myslave'@'192.168.204.248' identified by '123456' with grant option;
-
4.2 检查执行结果
5.通过命令可以观察主数据库在主从关系中状态.- 5.1 日志文件:存在于mysql安装目录/data
- 5.2 data文件夹xxxxx.index文件,存储日志文件在哪里.
- 5.3 data文件夹auto.cnf编写当前mysql的uuid
6.修改主数据库的防火墙,放行3306端口
-
6.1
# vim /etc/sysconfig/iptables
-
6.2 重启防火墙:
service iptables restart
7.操作从数据库的内容
-
7.1 修改从数据库的my.cnf的server_id
#vim /etc/my.cnf
-
7.2 设置server_id为3
8.修改从的uuid-
8.1 # vim /usr/local/mysql/data/auto.cnf
-
8.2 随意把值修改以下
-
8.3 重写mysql服务
# service mysql restart
-
9.进入从数据库的客户端工具
# mysql -u root -p123456
10.操作slave
-
10.1 关闭slave
# stop slave
-
10.2 在从中配置出master的信息
change master to master_host='192.168.204.247',master_user='myslave',master_password='123456',master_log_file='master_log.000005',Master_Log_Pos=1797;
-
10.3 开启slave
# start slave
-
10.4 显示slave状态
# show slave status \G;
11.验证主从关系
- 11.1 主从服务都重新启动.
- 11.2 在主数据库中新建数据库,新建表,添加数据,观察从数据库的状态.
12.连接Navicat客户端(开放远程连接权限(开放所有IP以root账号连接))
grant all privileges on *.* to root@'%' identified by '123456' with grant option;
结果:在mysql中创建数据库,会自动更新mysql2中的数据库