目录
1.介绍
主库一般有一个,从库可以有多个
1.1前置条件
提前准备好两台服务器,分别安装mysql并启动服务成功(安装在Linux系统中)
这里我是在虚拟机上克隆了一台虚拟机,并修改克隆的ip(也可以创建两台虚拟机都行)
并连接上你windows系统中的数据库
2.配置
2.1在虚拟机中通过命令的方式实现主库配置
1.修改Mysql数据库的配置文件/etc/my.cof(可能每个人的位置不同)
vim /etc/my.cof
2.log-bin=mysql-bin #[必须]启用二进制日志
server-id=100 #[必须]服务器唯一ID (id随便配置只要保持唯一)
3.改完配置文件后重启
systemctl restart mysqld
4.登录mysql数据库
mysql -uroot -p(自己设置的密码)
5.登录完成执行下方代码:
GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';
说明:从库到主库拿日志他们之间需要通信认证,这里的小明用户就是设置的通信用户。
也就是从库必须被主库授权具有该权限的用户,才能通过该用户复制。
6.查看主库的状态
show master status; (记住File和Position下方的数据,从库要用到)
2.2在虚拟机中通过命令的方式实现从库配置
1.按照主库的方式给my.cnf文件设置
只设置唯一ID
2.重启mysql服务
systemctl restart mysqld
3.登录mysql数据库(从库的别搞错了)
mysql -uroot -p(自己密码)
4.执行下方代码:
change master to master_host='192.168.31.132',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000002',master_log_pos=441;
根据自己情况输入:
'192.168.31.132':主库的ip
'xiaoming':主库设置的通信用户
'Root@123456':通讯用户密码
'mysql-bin.000002':查看主库状态时的File
441:查看主库状态时的Position
5.重新让线程跑起来
start slave;
6.查看从库的状态:show slave status;
3.测试
在主库创建新库刷新从库会跟着同步就表示测试成功
(若无法同步,或者无法本地连接远程mysql需要开启防火墙和3306端口号)
(使用克隆虚拟机的方式完成主从复制的,要更改虚拟机Mysql的UUID)
4.开启防火墙和3306端口号
1.本地测试3306是否开启
ping 虚拟机ip
2.使用telnet命令查看是否可以连接3306端口(失败就在linux开启3306端口)
telnet 虚拟机ip 3306
3.在linux系统中查看防火墙状态
service iptables status
若报了一下错误:
解决办法:yum install iptables-services
4.编辑防火墙配置文件
vi /etc/sysconfig/iptables
注:一定注意自己的虚拟机系统是什么
ubuntu 使用
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
CentOS 使用
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
注意:::位置不能放错
5.重启防火墙
service iptables restart
出现一下错误:
解决办法:systemctl start iptables