准备好两台服务器,并且已经安装好mysql,要关闭服务器的防火墙
关闭防火墙:systemctl stop firewalld
查看防火墙状态:systemctl status firewalld
我使用的主从MySQL的版本为5.7
主库操作:
主服务器开启二进制日志功能:
打开配置文件:vi /etc/my.cnf 添加以下代码
[mysqld]
log-bin=mysql-bin # mysql-bin 二进制文件名称,自定以
server-id=2 # 数值自定义,只要不重复和从库的数值不一样就行
重启mysql配置才能生效
systemctl restart mysqld
进入mysql命令
mysql -u root -p
root:账号名,使用自己的账号名称
回车输入密码(注意输入密码是不显示的)
查看主库有那些数据库
show databases;
为从库创建一个有复制权限的账号
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'Ete!2!23';
*.*:复制所有数据库和表
slave:用户名称自定即可
%:所有情况都能访问 还有其它两个值IP地址和localhost
ip地址:指定ip才能访问
localhost:只能在本地访问无法远程连接
Ete!2!23:密码自定即可
刷新权限:
flush privileges;
查看主库状态
show master status;
file和Position从库那边需要使用 每个人的值可能不一样按照自己的结果来
从库操作:
打开配置文件:vi /etc/my.cnf 添加一下代码
[mysqld]
server-id=129 # 数值自定义,只要不重复和主库的数值不一样就行
重启mysql
systemctl restart mysqld
主从库建立连接
CHANGE MASTER TO
master_host = '主库ip',
master_user = '主库上创建的从库复制账号',
master_password = '密码',
master_log_file = '主库file',
master_log_pos = 主库Position;
上面的host、user、password、file和pos都是我自己的,按照自己主库上的配置来
启动从库线程
start slave;
查看主从复制配置是否成功
show slave status \G;
查看从库下的数据库
show databases;
测试主从复制是否成功
在主库上创建一个新的数据库,名称就叫db
create database db;
查看从库是否有db这个数据库
至此主从复制结束