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] 段增长一个启动参数:mysql

skip-name-resolvelinux


###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 ; sql

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


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')vim

###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: 84194890ui


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

并无解决
show slave status\G
Slave_IO_Running: No
Slave_SQL_Running: Yesspa

报错: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

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

 

mysql双主主键冲突

建议相似双主这种状况:

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

1)、设置主主服务器的自增加偏移位置不一样:

A :auto_increment_offset=3

B :auto_increment_offset=4

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

​auto_increment_increment=2

相关文章
相关标签/搜索