relay-log.info, master.info 这连个文件时在建立复制时产生的,现在主要说明以下问题:

1、如果修改删除master.info文件,复制会中断么?

不会,如果stop slave,然后start slave还是能正常启动起来,因为MySQL已经记住这里面的信息了,

但是当你重启mysql时,在start slave,这时重启失败,会提示你change master to

测试如下

这里我的主从环境是级联的,结构如下

master-->slave1-->slave2

data-1-1机器安装两个实例,一个是master(3306端口),一个是slave2(3307端口)

data-1-2机器安装一个实例,3306端口,作为slave1

结构图如下

两台机器的环境

#data-1-1机器
[root@data-1-1 ~]# ifconfig eth0 | grep "inet addr"
inet addr:10.0.1.81 Bcast:10.0.1.255 Mask:255.255.255.0
[root@data-1-1 ~]# uname -mrm
2.6.32-504.el6.x86_64 x86_64
[root@data-1-1 ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "select version();"
+------------+
| version() |
+------------+
| 5.5.32-log |
+------------+
[root@data-1-1 ~]#
#mysql路径
#master
#/data/3306/
#slave2路径
#/data/3307/ #data-1-2机器
[root@data-1-2 ~]# ifconfig eth0 | grep "inet addr"
inet addr:10.0.1.82 Bcast:10.0.1.255 Mask:255.255.255.0
[root@data-1-2 ~]# uname -rm
2.6.32-504.el6.x86_64 x86_64
[root@data-1-2 ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
#mysql路径
[root@data-1-2 ~]# ll /application/mysql/

删除slave2的master.info

[root@data-1-1 ~]# mv /data/3307/data/master.info master.info.bak
[root@data-1-1 ~]# cat master.info.bak
18
mysql-bin.000004
2448
10.0.1.82
rep
oldboy123
3306
60
0 0
1800.000 0
[root@data-1-1 ~]#

不重启slave2的mysq服务,主从不受影响,停止slave和启动slave后也主从是不受影响的

[root@data-1-1 ~]#  mysql -uroot -poldboy123  -S  /data/3306/mysql.sock  -e   "create database d18;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| d18 |
| dd5 |
| mysql |
| performance_schema |
| t1 |
| test |
+--------------------+
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "stop slave;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "start slave;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "create database d19;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| d18 |
| d19 |
| dd5 |
| mysql |
| performance_schema |
| t1 |
| test |
+--------------------+
[root@data-1-1 ~]#

重启slave2的mysql服务,再观察主从,出现报错提示change matser  to

[root@data-1-1 ~]# /data/3307/mysql stop
Stoping MySQL...
[root@data-1-1 ~]# /data/3307/mysql start
Starting MySQL...
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "show slave status\G;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "start slave;"
ERROR 1200 (HY000) at line 1: The server is not configured as slave; fix in config file or with CHANGE MASTER TO

在slave1上取位置点,也就是说再slave2的master上取位置点

先让日志滚动一下

下面的操作为了取位置点

[root@data-1-1 ~]#  mysql -uroot -poldboy123  -S  /data/3306/mysql.sock  -e   "create database d20;"
[root@data-1-1 ~]#

slave1上取位置点

[root@data-1-2 ~]# mysqlbinlog /application/mysql/data/mysql-bin.000004 >bin4.log
[root@data-1-2 ~]# tail -15 bin4.log
# at 2529
#170118 17:31:51 server id 1 end_log_pos 2610 Query thread_id=185 exec_time=18 error_code=0
SET TIMESTAMP=1484731911/*!*/;
create database d19
/*!*/;
# at 2610
#170118 17:54:31 server id 1 end_log_pos 2691 Query thread_id=186 exec_time=17 error_code=0
SET TIMESTAMP=1484733271/*!*/;
create database d20
/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
[root@data-1-2 ~]#

salve2重新做主从

CHANGE  MASTER TO
MASTER_HOST='10.0.1.82',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='oldboy123',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=2610;

执行如下

[root@data-1-1 ~]# mysql -uroot -poldboy123  -S  /data/3307/mysql.sock  -e   "CHANGE  MASTER TO MASTER_HOST='10.0.1.82',MASTER_PORT=3306,MASTER_USER='rep',MASTER_PASSWORD='oldboy123',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=2610;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "start slave;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "show slave status\G;"
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.0.1.82
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 2691
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 334
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: mysql
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: 2691
Relay_Log_Space: 484
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: 12
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "create database d21;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| d18 |
| d19 |
| d20 |
| d21 |
| dd5 |
| mysql |
| performance_schema |
| t1 |
| test |
+--------------------+
[root@data-1-1 ~]#

2、master.info是在什么时候写入的呢?

change master to ..

经过我的测试,它的位置信息会变化的。

[root@data-1-1 ~]# cat /data/3307/data/master.info
18
mysql-bin.000004
2772
10.0.1.82
rep
oldboy123
3306
60
0 0
1800.000 0
[root@data-1-1 ~]#

3.关于relay-log.info

删除relay-log.info之后,stop slave和start  slave,主从依然正常

[root@data-1-1 ~]# mv /data/3307/relay-log.info relya-log.info.bak
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "create database d22;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "show databases;" | grep d22
d22
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| d18 |
| d19 |
| d20 |
| d21 |
| d22 |
| dd5 |
| mysql |
| performance_schema |
| t1 |
| test |
+--------------------+
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "stop slave;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "start slave;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "create database d23;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| d18 |
| d19 |
| d20 |
| d21 |
| d22 |
| d23 |
| dd5 |
| mysql |
| performance_schema |
| t1 |
| test |
+--------------------+
[root@data-1-1 ~]#

重启mysql服务后,主从同步报错

[root@data-1-1 ~]# /data/3307/mysql stop
Stoping MySQL...
[root@data-1-1 ~]# lsof -i:3307
[root@data-1-1 ~]# /data/3307/mysql start
Starting MySQL...
[root@data-1-1 ~]# lsof -i:3307
[root@data-1-1 ~]# lsof -i:3307
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 94497 mysql 12u IPv4 1003041 0t0 TCP *:opsession-prxy (LISTEN)
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "show slave status\G;"
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.0.1.82
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 2934
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1007
Last_Error: Error 'Can't create database 'd20'; database exists' on query. Default database: 'd20'. Query: 'create database d20'
Skip_Counter: 0
Exec_Master_Log_Pos: 2610
Relay_Log_Space: 1295
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: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1007
Last_SQL_Error: Error 'Can't create database 'd20'; database exists' on query. Default database: 'd20'. Query: 'create database d20'
Replicate_Ignore_Server_Ids:
Master_Server_Id: 12
[root@data-1-1 ~]#

处理如下,跳过错误即可

stop slave; 
set global sql_slave_skip_counter=1; (1是指跳过一个错误)
slave start;  

处理如下

[root@data-1-1 ~]#  mysql -uroot -poldboy123  -S  /data/3307/mysql.sock  -e   "stop slave;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "set global sql_slave_skip_counter=1;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "start slave;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "show slave status\G;"
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.0.1.82
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 2934
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 334
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1007
Last_Error: Error 'Can't create database 'd21'; database exists' on query. Default database: 'd21'. Query: 'create database d21'
Skip_Counter: 0
Exec_Master_Log_Pos: 2691
Relay_Log_Space: 1591
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: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1007
Last_SQL_Error: Error 'Can't create database 'd21'; database exists' on query. Default database: 'd21'. Query: 'create database d21'
Replicate_Ignore_Server_Ids:
Master_Server_Id: 12
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "stop slave;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "set global sql_slave_skip_counter=3;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "start slave;"
[root@data-1-1 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock -e "show slave status\G;"
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.0.1.82
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 2934
Relay_Log_File: relay-bin.000007
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: mysql
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: 2934
Relay_Log_Space: 549
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: 12
[root@data-1-1 ~]#

 

Mysql主从---删除master.info和relya-log.info实验的更多相关文章

  1. Mysql主从数据库(master/slave),实现读写分离

    在之前的一篇文章中,阐述了如何在高并发高负载的场景下使用nginx做后台服务的负载均衡:在阿里云Centos上配置nginx+uwsgi+负载均衡配置,但是不要以为这样做了就是一劳永逸的,到了数据业务 ...

  2. 在阿里云Centos7.6上面配置Mysql主从数据库(master/slave),实现读写分离

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_85 在之前的一篇文章中,阐述了如何在高并发高负载的场景下使用nginx做后台服务的负载均衡:在阿里云Centos上配置nginx+ ...

  3. 关于mysql主从架构master宕机后,请求转移问题解决办法

    mysql架构:一主一从 问题一:有两台mysql数据库,已做好主从.如果运行某一天master服务器mysql故障导致前端请求无法处理怎么办? 答:将前端需要数据库处理的请求转移到slave机上. ...

  4. mysql 主从配置(master/slave)

    1.  在每台服务器上创建复制账号(也可以只在master上创建用户,这里配置两个是为了方便以后切换) 备库运行的I/O县城需要建立一个到主库的TCP/IP连接,所以必须在主库创建一个用户,并赋予合适 ...

  5. mysql 查看 删除 日志操作总结(包括单独和主从mysql)

    我们可以在mysql的安装目录下看到mysql的二进制日志文件,如mysql-bin.000***等,很多人都不及时的处理,导致整个硬盘被塞满也是有可能的.这些是数据库的操作日志.它记录了我们平时使用 ...

  6. MySQL主从同步报Client requested master to start replication from position

    数据库版本:5.6.16 测试环境MySQL 主从,数据库被人重启,忘记开启start slave,导致主从失效,停了一天的数据没有追上. 查看从库的数据库状态:show   slave   stat ...

  7. MySQL主从同步异常问题解决Client requested master to start replication from position > file size

    MySQL主从同步异常问题解决Client requested master to start replication from position > file size 一.问题描述 MySQ ...

  8. Mysql主从架构报错-Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work...

    在搭建Mysql主从架构过程中,由于从服务器是克隆的主服务器系统,导致主从mysql uuid相同, Slave_IO无法启动,报错如下: The slave I/O thread stops bec ...

  9. mysql主从同步失败 Relay log read failure: Could not parse relay log event entry

    mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQ ...

随机推荐

  1. python笔记6-while、for循环

    1.while--while循环之前,先判断一次,如果满足条件的话,再循环 #while循环 count=(input("请输入循环次数"))#计数器 while count< ...

  2. python的编码与转码

    编码问题一直是初学者的难题,搞不明白.甚至一些程序员做了多年的程序,但是编码一直整不清,下面就来认识认识编码吧. ASCII(American Standard Code for Informatio ...

  3. L327 找灵魂伴侣

    Looking for the Perfect Partner I'm sure we all remember a time when we fell in love. For some it wa ...

  4. js 自执行匿名函数(转载)

    自执行匿名函数: 常见格式:(function() { /* code */ })(); 解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命 ...

  5. 常见无线DOS攻击

    记录下自己最近一段时间对无线渗透学习的笔记. 无线DOS就是无线拒绝服务攻击.主要包括以下几种攻击类型:Auth Dos攻击.Deauth Flood攻击.Disassociate攻击及RF干扰攻击等 ...

  6. Python爬虫框架Scrapy实例(三)数据存储到MongoDB

    Python爬虫框架Scrapy实例(三)数据存储到MongoDB任务目标:爬取豆瓣电影top250,将数据存储到MongoDB中. items.py文件复制代码# -*- coding: utf-8 ...

  7. 字体图标Font Awesome 的使用

    下载地址:http://fontawesome.dashgame.com/ 将下载下来的压缩包解压,然后解压,将下载的整个文件夹复制到你的项目中,在你需要用字体图标的html中引入“font-awes ...

  8. Python 内置函数2

    print(list("胡辣汤")) lst = ["河南话", "四川话", "东北", "山东" ...

  9. less中使用calc

    css3中可以使用calc()来实现自适应布局 例如:width:“calc(100%  - 25px)” width: calc(expression); ==> expression是一个表 ...

  10. 【Python】多线程-2

    1.    进程和线程的区别: (1) 一个进程可以有多个线程,一个进程中的多个线程共享该进程的所有资源,多线程切换比多进程切换快,因为不用上下文切换,Python中并发建议用多进程 (2) 进程是资 ...