mysql启动失败
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql启动失败相关的知识,希望对你有一定的参考价值。
mysql重启报错
错误:
ERROR! MySQL server PID file could not be found!
Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql/run/mysql.pid).
原因可能有以下几种:
1.mysql没有正常关闭
2.第二次在机器上安装mysql,有残余数据影响服务启动
3.权限问题,可能是/opt/mysql/data/数据目录没有权限
解决方案:
1.没有正常关闭的话,日志里会有写
[Note]?InnoDB: Database was not shutdown normally!
[Note] InnoDB: Starting crash recovery.
[Note] InnoDB:?Reading tablespace information from the .ibd files...
?[ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace raildb/base_company_fullname uses space ID: 4 at filepath: ./raildb/base_company_fullname.ibd. Cannot open tablespace mysql/slave_master_info which uses space ID: 4 at filepath: ./mysql/slave_master_info.ibd
第一行:提示数据库没有正常关闭,第三行,提示正在从.ibd files读取tablespace information
error的地方,大概意思就是读取不到raildb这个库的tablespace
解决:vi /etc/my.cof 增加一行 innodb_force_recovery = 1
然后删除log里边的mysql-bin.index 这个文件
重启mysql
2.解决:去mysql的数据目录/data看看,如果存在mysql-bin.index,删除掉
3.权限问题不说
可能我的问题比较复杂,首先是机器二次安装mysql,导致重启报错,非正常停止mysql,启动失败。
解决方案:删除/tmp/mysql.sock 文件,重启MySQL
这里介绍一下mysql,sock
Mysql有两种连接方式:
(1)TCP/IP
(2)socket
对mysql.sock来说,其作用是程序与mysqlserver处于同一台机器,发起本地连接时可用。
例如你无须定义连接host的具体IP得,只要为空或localhost就可以。
在此种情况下,即使你改变mysql的外部port也是一样可能正常连接。
因为你在my.ini中或my.cnf中改变端口后,mysql.sock是随每一次 mysql server启动生成的。已经根
据你在更改完my.cnf后重启mysql时重新生成了一次,信息已跟着变更。
如果你删除掉mysql.sock文件以后可能会报
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)
mysql.sock不存在
mysql.sock是一个临时文件,在mysql启动时会自动生成,我的服务器未启动,自然就没有mysql.sock文件。
在错误日志中,启动失败的原因极为明显,file ‘./mysql-bin。000004’ not found,failed to open!mysql开启了bin日志功能,
到数据库根目录查看该文件是存在的,可能是文件权限的问题,因为/tmp/mysql.sock不存在,用这样的方法:
>ln -s /var/lib/mysql/mysql .sock /tmp/mysql .sock
以上是关于mysql启动失败的主要内容,如果未能解决你的问题,请参考以下文章
[RxJS] Implement RxJS `mergeMap` through inner Observables to Subscribe and Pass Values Through(代码片段
环境初始化 Build and Install the Apache Thrift IDL Compiler Install the Platform Development Tools(代码片段
Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段
Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段
[TIA PORTAL][CONVERT] Convert Char Array to DInt...DInt to Char Array..Useful and easy function(代码片段