mysql启动失败 linux_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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可能的原因有很多,以下是一些可能的解决方法: 1. 检查mysql配置文件是否正确,特别是datadir和socket路径是否正确。 2. 检查mysql日志文件,查看是否有错误信息,例如权限问题、端口冲突等。 3. 检查系统资源是否足够,例如内存、磁盘空间等。 4. 尝试使用命令行启动mysql,查看是否有更详细的错误信息。 5. 如果是新安装的mysql,可以尝试重新安装或卸载重装。 6. 如果是升级mysql导致启动失败,可以尝试回滚到之前的版本或者等待官方修复。 希望以上方法能够帮助您解决问题。 ### 回答2: 在Linux下,MySQL启动失败可能是由于各种原因引起的。以下是一些可能的解决方法: 1. 检查MySQL的日志文件:首先,你可以查看MySQL的错误日志文件,通常位于/var/log/mysql/error.log。打开该文件,查找关于启动失败的错误信息,如数据库文件损坏、端口被占用等。根据日志中的错误信息,采取相应的措施来解决。 2. 检查端口是否被占用:使用命令netstat -tunlp | grep 3306(假设MySQL默认端口为3306)来检查MySQL监听的端口是否被其他进程占用。如果发现端口被占用,可以尝试使用不同的端口来启动MySQL,或者终止占用该端口的进程。 3. 修改MySQL的配置文件:有些情况下,MySQL启动失败可能是由于配置文件中的错误引起的。可尝试检查/etc/mysql/my.cnf(或/etc/my.cnf)配置文件的正确性,并进行相应的修改。特别是注意数据库文件存放路径、日志文件路径、用户权限等配置项。 4. 检查文件权限:MySQL启动需要有正确的文件权限设置。检查MySQL相关文件的权限是否正确,包括数据库文件、日志文件和配置文件等。通常,MySQL的文件属主应该是mysql用户,具有相应的读写权限。 5. 重置MySQL用户密码:有时候,MySQL启动失败可能是因为用户密码丢失或不正确导致的。可以尝试使用mysqladmin命令重置MySQL用户的密码,具体操作可以查阅相关文档或在线资源。 6. 重新安装MySQL:如果以上方法都无法解决问题,可以考虑重新安装MySQL。使用适合你Linux发行版的软件包管理工具,从官方源或其他可靠源安装最新版本的MySQL。 总之,MySQLLinux启动失败可能是由于多种原因引起的,需要仔细检查错误日志、配置文件、文件权限以及其他可能的问题,并根据错误信息采取相应的解决方法。 ### 回答3: 在LinuxMySQL启动失败的原因可能有很多,下面是一些常见的可能原因和解决方法: 1. 查看错误日志:MySQL的错误日志通常存储在/var/log/mysql/error.log或/var/log/mysqld.log文件中。通过查看错误日志可以找到导致启动失败的具体错误信息,根据错误信息来采取相应措施。 2. 确保与之前的MySQL实例没有冲突:有时候,在之前运行的MySQL实例没有正确关闭的情况下,再次启动MySQL会导致失败。可以通过执行"sudo service mysql stop"命令来确保之前的MySQL实例已经关闭。 3. 端口被占用:MySQL默认使用3306端口。如果该端口被其他应用程序占用,MySQL无法启动。可以通过执行"sudo netstat -tlnp | grep 3306"命令来检查是否有进程正在使用该端口。如果有,可以尝试更改MySQL的端口。 4. 磁盘空间不足:如果磁盘空间不足,MySQL无法启动。可以通过执行"df -h"命令来检查磁盘空间使用情况。如果发现空间不足,可以清理不必要的文件或者扩展磁盘空间。 5. 权限问题:MySQL的数据文件通常存储在/var/lib/mysql目录下。确保该目录和文件拥有正确的权限。可以通过执行"sudo chown -R mysql:mysql /var/lib/mysql"命令来更改所属用户和组。 6. MySQL配置文件错误:检查MySQL配置文件(通常位于/etc/mysql/my.cnf)中的配置项是否正确,特别是数据库目录和日志文件路径等。确保这些路径存在并且有正确的权限。 7. 数据库损坏:如果MySQL数据库文件损坏,也可能导致启动失败。可以尝试修复数据库文件或者使用备份文件恢复数据。 如果以上方法仍然无法解决问题,可以尝试在MySQL命令行下执行"mysql_upgrade"命令来修复数据库。如果问题依然存在,可能需要重新安装MySQL来解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值