mysql log-update 错误_记一次修复MySQL socker 错误

问题描述

初次往数据库中source 一个超大的文件,过了一会sql报错 table is full

然后去data 目录查看大小,发现一个表的ibd文件2G,果断删除了这个文件。

没想到继续报错。

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

目前来看,是mysql服务启动的时候报错了,服务未能成功启动。

查看log tail -f /var/log/mysql/error.log

Header page consists of zero bytes in datafile: ./ibdata1, Space ID:0, Flags: 0. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue.```

大概意思是说 header page 为空。

造成的结果就是innodb init 失败。

尝试 innodb restore(失败)

修改配置

[mysqld] innodb_force_recovery = 1

重启依然报错,放弃。

search mysql missing ./ibdata1 datafile

try google the problem ,解释如下:

what is ibdata1

我们一定要记住一点:/var/lib/mysql/ibdata1 是InnoDB架构中最繁忙的文件。一般来说他主要负责6种类型的信息:

* 表数据

* 表索引数据

* [多版本并发控制数据 MVCC (Multiversioning Concurrency Control)](http://en.wikipedia.org/wiki/Multiversion_concurrency_control) Data

* 回滚段数据(Rollback Segments)

* Undo Space

* 表元数据(Table Metadata (Data Dictionary))

* Double Write Buffer (background writing to prevent reliance on OS caching)

* Insert Buffer (managing changes to non-unique secondary indexes)

* See the [**Pictorial Representation of ibdata1**](http://www.scribd.com/doc/31337494/XtraDB-InnoDB-internals-in-drawing)

去确认innodb_data_file配置没有问题

config

innodb_data_file_path = ibdata1:10M:autoextend:max:128M

try 卸载mysql(失败,死循环)

Apr 03 07:06:05 local systemd[1]: Failed to start MySQL Community Server.

Apr 03 07:06:05 local systemd[1]: mysql.service: Unit entered failed state.

Apr 03 07:06:05 local systemd[1]: mysql.service: Failed with result 'exit-code'.

dpkg: error processing package mysql-server-5.7 (--configure):

subprocess installed post-installation script returned error exit status 1

Errors were encountered while processing:

mysql-server-5.7

E: Sub-process /usr/bin/dpkg returned an error code (1)

然后去解决这个错误

sudo dpkg --configure -D 777 mysql-server-5.7

问题又回归到mysql 的这个 报错

Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.

死循环。

回头解决开始的问题本身(搞定)

把报错的ibdata既然是已经不能用了,为什么不把它删除了呢?

删除后发现成功~~~~~~~~~~~~~~~~~~~~

那么这时候再进行 apt update 应该就没有问题了

总结

1 去找error log 去定位问题

2 针对问题只进行相关的操作,别跑太远了,必然都是错的。

3 其实最正确的方法是,既然表不够,去根据df -h 去查看挂载情况

并且根据 du -sh 去确认mysql已使用的容量。

另外一个问题

Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.

发现不要瞎更难/etc/mysql/mysql.conf.d/mysqld.cnf 里面的东西

要新开一个~/.mycnf文件。

如何确认自己的配置是否正确

mysql --help 会自动读取相关的配置文件,如果运行没有错误,那么mysql服务器重启也不会有啥大问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值