mysql故障

1:当通过 TCP/IP 连接 MySQL 远程主机时,出现 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104 。如果是
在linux shell命令行中直接打 mysql 命令,能够顺利连上 MySQL,执行查询语句也比较正常,但如果执行 STOP SLAVE; 命令时就随机出现
 ERROR 2013 (HY000): Lost connection to MySQL server during query 问题。而如果把操作命令写到脚本文件再去执行该脚本文件的话,
 则必然出现 Lost connection to MySQL server at 'reading initial communication packet', system error: 111
要是无论通过什么途径远程访问都出现错误可以认为是系统有防火墙之类的限制,但现在这种奇怪的抽筋现象让人百思不得其解。
最后找到的解决方法是在 my.cnf 里面的 [mysqld] 段增加一个启动参数:

skip-name-resolve


###mysql主从,通过status 查看
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果不全部是yes的话就说明主从有问题,就得去从库分析错误日志了
###根据错误日志查看对应问题
stop SLAVE ; 
reset slave
CHANGE MASTER TO MASTER_LOG_FILE='mysqlcncnmaster.000080', MASTER_LOG_POS=0; 
start SLAVE ; 

不行的话看下是不是mysql资源被其他进程占用
重启mysql服务
通过mysqlbinlog转换最新的binlog日志文件,看下是不是在同步之前的事件
mysqlbinlog /var/log/mysql/mysql-bin.002743 > test.txt


result = commands.getoutput('mysql  -uroot -p1qaz#EDC -e "show slave status\G" |egrep  -w "Slave_IO_Running|Slave_SQL_Running" |awk "{print $2}"|wc -l')

###slave状态不对
Slave_IO_Running: Yes
Slave_SQL_Running: No

报错:Last_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are:
the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), 
the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code.
If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.


###找到出错前读取到的最新位置,重新设置从主的同步日志和位置
Relay_Master_Log_File: mysql-bin.002757
Read_Master_Log_Pos: 84194890


###修复
stop slave;
change master to master_log_file='mysql-bin.002757',master_log_pos=84194890;
start slave;

并没有解决
show slave status\G
Slave_IO_Running: No
Slave_SQL_Running: Yes

报错:Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
查看从库错误日志
vim /var/log/mysql/error.log
2017-08-08 09:13:43 29950 [Note] Slave I/O thread killed while reading event
2017-08-08 09:13:43 29950 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.003003', position 90529022
显示退出的时候读取到这个文件的这个点
再次停止从库,修改与主的同步位置后恢复
Seconds_Behind_Master: 395   ###与主相差的同步时间点也OK


######删除数据表,重新创建时报错
Tablespace for table '`zabbix`.`history_uint`' exists. Please DISCARD the tablespace before IMPORT

#####解决方法
1、删除这个表所在数据目录关于这个表的所有文件
2、命令行进入数据清除缓存,如若不清楚依然会报此错
   use zabbix
   flush privileges
3、校验,查看是否有新数据产生

 

mysql双主主键冲突

建议类似双主这种情况:

事先设置好offset和increment的值,即:实现设置好自增字段的初始值和步长。主库A为奇数起步,主库B为偶数起步。两者都采用相同的步长。

1)、设置主主服务器的自增长偏移位置不同:

A :auto_increment_offset=3

B :auto_increment_offset=4

2)、设置主主服务器步长相同:

​auto_increment_increment=2

转载于:https://my.oschina.net/u/2343310/blog/1553870

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值