主从原理这个是网上的主从流程图主从思维导图
LINUX安装MySQL
下载软件
wget https://repo.mysql.com/mysql-community-release-el6.rpm
安装
yum localinstall mysql80-community-release-el7-1.noarch.rpm
yum install mysql-community-server
开机启动、守护进程
systemctl enable mysqld
systemctl daemon-reload
启动
systemctl start mysqld
MySQL设置密码,我是不知道密码,所以进入安全模式直接重置了密码
mysqld_safe --user=mysql --skip-grant-tables;
update user set password=password("你的密码") where user="root";
flush privileges;
主从配置文件(配置文件默认是/etc/my.cnf)
主
[mysqld]
## 唯一
server-id=100
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
给权限用于主从同步数据
CREATE USER 'slave'@'%' IDENTIFIED BY '@#$Rfg345634523rft4fa';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
%:所有服务器都能使用这个用户(也可指定IP)
从
[mysqld]
## 唯一(不要与主的重复了)
server-id=101
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin
change master to master_host='IP', master_user='slave', master_password='@#$Rfg345634523rft4fa', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 1, master_connect_retry=30;
start slave;
show slave status \G;
master_host :Master的地址
master_port:Master的端口号
master_user:用于数据同步的用户
master_password:用于同步的用户的密码
master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值
master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒
遇到的坑
master_log_pos这个参数刚开始配置的时候一定要是1
按照网上配置的时候
从的线程IO没有同步,于是我查看日志的错误
就是因为master_log_pos这个参数配置过大找不到所致
stop slave;
重新执行
change master to master_host='IP', master_user='slave', master_password='@#$Rfg345634523rft4fa', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 1, master_connect_retry=30;
配置成功
此文章部分参考小熊我不要了的文章感谢!!