CentOS 7.4下MySQL 5.7.20主从环境搭建(M(6)

mysql> exit;
Bye
[root@xuegodslave ~]# systemctl stop mysqld  停掉slave数据库服务
[root@xuegodslave ~]# vim /etc/my.cnf  编辑slave服务器数据库配置文件末尾添加一行 server-id=2 (从服务器ID号,不要和主ID相同 ,如果设置多个从服务器,每个从服务器必须有一个唯一的server-id值,必须与主服务器的以及其它从服务器的不相同。可以认为server-id值类似于IP地址:这些ID值能唯一识别复制服务器群集中的每个服务器实例。)

[root@xuegodslave ~]# systemctl start mysqld  启动mysql服务
[root@xuegodslave ~]# mysql -uroot -p'zX@987Weqqrd1'   登录mysql服务器
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.20 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> stop slave;  停止slave
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> change master to master_host='10.10.10.69',master_user='slave',master_password='change master to master_host='10.10.10.69',master_user='slave',master_password='A@*qw92!derS';  (授权slave服务器同步master,指定账号和密码)
Query OK, 0 rows affected, 2 warnings (0.05 sec)

mysql> start slave;  启动slave
Query OK, 0 rows affected (0.01 sec)

 

mysql> show slave status \G  查看状态
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.10.10.69
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin-master.000001
Read_Master_Log_Pos: 448
Relay_Log_File: xuegodslave-relay-bin.000002
Relay_Log_Pos: 675
Relay_Master_Log_File: mysql-bin-master.000001
Slave_IO_Running: Yes  一个负责与主机的io通信

Slave_SQL_Running: Yes  负责自己的slave mysql进程

如上图所示,主从服务器均运行并连接成功

再到主服务器上查看状态:

CentOS 7.4下MySQL 5.7.20主从环境搭建(M

最后在master服务器中的test数据库中插入数据进行同步测试:

CentOS 7.4下MySQL 5.7.20主从环境搭建(M

测试成功,主从服务器已成功同步数据!

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

如果遇到主从不同步,看一下主从bin-log的位置,然后再同步。

在主服务器上看二进制日志事件列表

mysql> show binlog events \G

从服务器执行MySQL命令下:

mysql> stop slave;            #先停止slave服务

mysql> change master to master_log_file='mysql-bin-master.000001',master_log_pos=1164;

#根据上面主服务器的show master status的结果,进行从服务器的二进制数据库记录回归,达到同步的效果

mysql>slave start;                      #启动从服务器同步服务

mysql> show slave status\G;          #用show slave status\G;看一下从服务器的同步情况

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

如果都是yes,那代表已经在同步

 

重启从服务器,再查看状态:

停止从服务器slave stop;

开启从服务器slave start;

排错思路:

1、二进制日志没有开启

2、IPTABLES 没有放开端口

3、对应的主机 IP地址写错了

SQL线程出错

1、主从服务器数据库结构不统一

出错后,数据少,可以手动解决创建插入,再更新slave状态。

注:如果主上误删除了。那么从上也就误删除了。  #因此主上要定期做mysqldump备份。

推荐阅读:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d0dc1a0ec1963245a3681386c9c2b706.html