当前位置:首页 > 编程教程 > mysql技术文章 > Mysql主从复制注意事项的讲解

详细介绍Mysql主从复制注意事项

  • 发布时间:
  • 作者:码农之家
  • 点击:169

这篇文章主要知识点是关于mysql、主从复制、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

MySQL技术精粹:架构、高级特性、性能优化与集群实战
  • 类型:MySQL大小:271.3 MB格式:PDF作者:张工厂
立即下载

Mysql主从复制注意事项的讲解

一、报错error connecting to master 'x@x.x.x.x:x' - retry-time: 60  retries: 86400

今天搭建mysql主从复制,一直报这个错。我是在一台虚拟机上使用多实例创建的2个不同端口的数据库,查了很久,才解决。

1.检查主从复制的用户名密码;

2.检查MASTER_LOG_FILE和MASTER_LOG_POS。

 记住配置从库的命令,这些参数都要参考主库的配置:

mysql> CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=3308, MASTER_USER='root', MASTER_PASSWORD='oldboy123', MASTER_LOG_FILE='mysql-bin.000007', MASTER_LOG_POS=797;

查询同步结果:

mysql> show slave status \G
*************************** 1. row ***************************
        Slave_IO_State: Waiting for master to send event
         Master_Host: 127.0.0.1
         Master_User: root
         Master_Port: 3308
        Connect_Retry: 60
       Master_Log_File: mysql-bin.000007
     Read_Master_Log_Pos: 797
        Relay_Log_File: mysql-relay-bin.000002
        Relay_Log_Pos: 253
    Relay_Master_Log_File: mysql-bin.000007
       Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
       Replicate_Do_DB: 
     Replicate_Ignore_DB: 
      Replicate_Do_Table: 
    Replicate_Ignore_Table: 
   Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
          Last_Errno: 0
          Last_Error: 
         Skip_Counter: 0
     Exec_Master_Log_Pos: 797
       Relay_Log_Space: 409
       Until_Condition: None
        Until_Log_File: 
        Until_Log_Pos: 0
      Master_SSL_Allowed: No
      Master_SSL_CA_File: 
      Master_SSL_CA_Path: 
       Master_SSL_Cert: 
      Master_SSL_Cipher: 
        Master_SSL_Key: 
    Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
        Last_IO_Errno: 0
        Last_IO_Error: 
        Last_SQL_Errno: 0
        Last_SQL_Error: 
 Replicate_Ignore_Server_Ids: 
       Master_Server_Id: 3308

同步结果看3项:Slave_IO_Running(I/O线程状态),Slave_SQL_Running(SQL线程状态),Seconds_Behind_Master(复制过程中从库比主库延迟的秒数)。

二、从库出现冲突无法复制。可以将同步指针向下移动一个,如果多次不同步,重复操作。

mysql> stop slave;
Query OK, 0 rows affected (0.02 sec)
mysql> set global sql_slave_skip_counter=1;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

三、当前从库还要作为其他从库的主库。在从库的my.cnf加入如下参数,并修改server_id和log-bin的配置(去掉注释,修改默认配置),重启服务。

log-slave-updates
log-bin = /data/3309/data/mysql-bin #根据实际情况写
expire_logs_days = 7 #相当于find /data/3309/data -type f -name "mysql-bin.000* -mtime +7 | xargs rm -f"

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对码农之家的支持。如果你想了解更多相关内容请查看下面相关链接

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

Mysql 相关电子书
学习笔记
网友NO.843215

mysql 5.7 docker 主从复制架构搭建教程

分享mysql 5.7 docker 主从复制架构搭建教程,供大家参考,具体内容如下 环境版本: MySQL : 5.7.13 Docker : 1.11.2 CentOS : 7.1 1.先在两个物理机上分别安装两个MySQL. 命令如下 复制代码 代码如下: docker pull mysql:5.7.13 docker run --name anuo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qaz.00JK -d mysql:5.7.13 2.在主库上创建一个复制账户 复制代码 代码如下: GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'192.168.2.103' IDENTIFIED BY 'qaz.00JK'; 复制账户为: rep1 指定从库的IP必须为: 192.168.2.103 复制密码为: qaz.00JK 3.修改主库的配置文件 (麻烦,应该有更方便的修改方式) 3.1先从docker拷贝配置文件到主机/root 目录: docker cp anuo-mysql:/etc/mysql/my.cnf /root 3.2在主机打开 my.cnf , 在 [mysqld] 节点最后加上 log-bin=mysql-bin server-id=1 3.3 再把此文件上传到docker mysql 里面覆盖 docker cp /root/my.cnf anuo-mysql:/etc/mysql/my.cnf 3.4 重启 mysql 的docker , 让配置……

网友NO.131704

MySQL5.7.18主从复制搭建(一主一从)教程详解

一、复制原理 主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。 MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上。当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制日志中的内容发送到从服务器。 该线程为主服务器上的Binlog Dump线程。从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。第3个线程是SQL线程,是从服务……

网友NO.774565

MySQL主从复制的原理及配置方法(比较详细)

一、复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新。 将主服务器的数据拷贝到从服务器的一个途径是使用LOAD DATA FROM MASTER语句。请注意LOAD DATA FROM MASTER目前只在所有表使用MyISAM存储引擎的主服务器上工作。并且,该语句将获得全局读锁定。 MySQL 使用3个线程来执行复制功能,其中1个在主服务器上,另两个在从服务器上。当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。 主服务器创建一个线程将二进制日志中的内容发送到从服务器。该线程可以识别为主服务器上SHOW PROCESSLIST的输出中的Binlog Dump线程。 从服务器I/O线程读取主……

网友NO.898079

CentOS下编写shell脚本来监控MySQL主从复制的教程

目的:定时监控MySQL主从数据库是否同步,如果不同步,记录故障时间,并执行命令使主从恢复同步状态 1、创建脚本文件 vi /home/crontab/check_mysql_slave.sh #编辑,添加下面代码 #!/bin/sh# check_mysql_slave statusip=eth0 #网卡名称mysql_binfile=/usr/local/mysql/bin/mysqlmysql_user=root #MySQL数据库账号mysql_pass=123456 #密码mysql_sockfile=/tmp/mysql.sockdatetime=`date +"%Y-%m-%d/%H:%M:%S"` #获取当前时间mysql_slave_logfile=/home/logs/check_mysql_slave.log #日志文件路径,必须提前创建好slave_ip=`ifconfig $ip|grep "inet addr" | awk -F[:" "]+ '{print $4}'`status=$($mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "show slave status\G" | grep -i "running")Slave_IO_Running=`echo $status | grep Slave_IO_Running | awk ' {print $2}'`Slave_SQL_Running=`echo $status | grep Slave_SQL_Running | awk '{print $2}'`if [ "$Slave_IO_Running" = "Yes" -a "$Slave_SQL_Running" = "Yes" ]then echo "Slave is Running!"e……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com

idea注册码