XAMPP-MySQL意外关闭

XAMPP-MySQL意外关闭,mysql,xampp,Mysql,Xampp,当我打开XAMPP并单击start MySQL按钮时,它会给我一个错误。 我之前刚开始做,但现在不行了 下午12:19:12[mysql]正在尝试启动mysql应用程序… 下午12:19:12[mysql]检测到状态更改:正在运行 下午12:19:13[mysql]检测到状态更改:已停止 下午12:19:13[mysql]错误:mysql意外关闭。 下午12:19:13[mysql]这可能是由于端口阻塞、缺少依赖项, 下午12:19:13[mysql]权限不正确、崩溃或被其他方法关闭 下午12:

当我打开XAMPP并单击start MySQL按钮时,它会给我一个错误。 我之前刚开始做,但现在不行了

下午12:19:12[mysql]正在尝试启动mysql应用程序…
下午12:19:12[mysql]检测到状态更改:正在运行
下午12:19:13[mysql]检测到状态更改:已停止
下午12:19:13[mysql]错误:mysql意外关闭。
下午12:19:13[mysql]这可能是由于端口阻塞、缺少依赖项,
下午12:19:13[mysql]权限不正确、崩溃或被其他方法关闭
下午12:19:13[mysql]按日志按钮查看错误日志并检查
下午12:19:13[mysql]Windows事件查看器查看更多线索
下午12:19:13[mysql]如果您需要更多帮助,请复制并发布此
下午12:19:13[mysql]论坛上的整个日志窗口

以下是错误日志的内容:

2013-08-02 12:19:12 4536[注]插件“联邦”已禁用。
2013-08-02 12:19:12 f64 InnoDB:警告:不推荐使用InnoDB_额外的_mem_pool_大小。此选项可能在未来版本中与innodb_use_sys_malloc选项以及innodb的内部内存分配器一起删除。
2013-08-02 12:19:12 4536[注]InnoDB:InnoDB内存堆已禁用
2013-08-02 12:19:12 4536[注]InnoDB:互斥锁和rw_锁使用Windows互锁功能
2013-08-02 12:19:12 4536[注]InnoDB:压缩表使用zlib 1.2.3
2013-08-02 12:19:12 4536[注]InnoDB:不使用CPU crc32指令
2013-08-02 12:19:12 4536[注]InnoDB:初始化缓冲池,大小=16.0M
2013-08-02 12:19:12 4536[注]InnoDB:缓冲池初始化完成
2013-08-02 12:19:12 4536[注]InnoDB:支持的最高文件格式是Barracuda。
2013-08-02 12:19:12 4536[注]InnoDB:ibdata文件中的日志序列号0和0与IBU日志文件中的日志序列号1616798不匹配
2013-08-02 12:19:12 4536[注]InnoDB:数据库未正常关闭
2013-08-02 12:19:12 4536[注]InnoDB:开始崩溃恢复。
2013-08-02 12:19:12 4536[注]InnoDB:正在从.ibd文件中读取表空间信息

最重要的错误消息如下:

2013-08-02 12:19:12 4536[错误]InnoDB:
试图打开以前打开的表空间。
以前的表空间mysql/innodb\u table\u stats在filepath:\mysql\innodb\u table\u stats.ibd使用空间ID:1。
无法打开表空间xat/payments,该表空间在filepath:处使用空间ID:1。\xat\payments.ibd

日志的其余部分:

InnoDB:错误:无法打开单个表表空间文件。\xat\payments.ibd
InnoDB:我们不会继续崩溃恢复,因为表可能会变成
InnoDB:如果无法将InnoDB日志中的日志记录应用于InnoDB,则会损坏。
InnoDB:要解决问题并启动mysqld:
InnoDB:1)如果文件中存在权限问题,mysqld无法
InnoDB:打开文件,您应该修改权限。
InnoDB:2)如果不需要该表,或者您可以从备份中还原它,
InnoDB:然后您可以删除.ibd文件,InnoDB将执行正常的
InnoDB:崩溃恢复并忽略该表。
InnoDB:3)如果文件系统或磁盘损坏,您无法删除
InnoDB:the.ibd文件,您可以在my.cnf中设置InnoDB\u force\u recovery>0
InnoDB:在这里强制InnoDB继续崩溃恢复


这些错误的原因是什么?如何纠正它们?

Config->Apache->Open httpd.conf。搜索Listen或80,将Listen端口更新为8081保存并重新启动服务器。
哦,如果你有Skype,请关闭它。

我在尝试启动mysql时在我的
C:\xampp\mysql\data\mysql\u error.log中遇到了同样的错误

2013-08-05 01:20:32 6780 [ERROR] InnoDB: Attempted to open a previously 
  opened tablespace. Previous tablespace mysql/slave_relay_log_info uses 
  space ID: 3 at filepath: .\mysql\slave_relay_log_info.ibd. Cannot open  
  tablespace test_database/test_table which uses space ID: 3 at filepath:  
  .\test_database\test_table.ibd
你必须仔细阅读错误。这意味着
test\u数据库
正在阻止mysql启动

您可以将有问题的数据库吹走,以下步骤可以解决问题:

01.Go to mysql/data/ directory
02. delete the ibdata1 & ib_logfile*(ib_logfile0,ib_logfile1,ib_logfile101) file
03. restart xampp server
  • 确保mysql和xampp完全关闭
  • 转到安装mysql的目录,我的是:
    C:\xampp\mysql\data
  • 您应该会看到一个文件夹,其中包含您创建的数据库的名称。我的是
    test\u数据库
  • 在其他地方创建一个名为
    C:\xampp\mysql\data\mysql\backuptablespace的新文件夹
  • 将有问题的数据库表文件夹拖放(不要删除)到备份目录
  • 再次尝试启动mysql。对我来说,它像预期的那样在1秒内就启动了
  • 如果它不起作用,把文件放回你开始的地方,你就会回到你开始的地方

    如果您不想删除数据库并且没有备份:

    01.Go to mysql/data/ directory
    02. delete the ibdata1 & ib_logfile*(ib_logfile0,ib_logfile1,ib_logfile101) file
    03. restart xampp server
    
    如果您没有表数据的备份,并且mysql不会启动,因为某些内容已损坏,那么您必须使用消除过程来猜测和检查您到底做了什么,从而损坏了它。遵循以下步骤:

  • 复制整个
    C:\xampp\
    并将其存储在安全的地方,这样您就可以回到开始的地方
  • 使用“二进制搜索”方法尝试在mysql数据库中查找损坏的项。它可以是一个文件、一个表、一个数据库、一个用户或任何东西
  • 删除整个数据库,看看是否允许mysql启动。如果确实如此,请放回数据库并尝试删除一些表。如果没有,那么试着拔出其他东西,直到它真正开始
  • 尝试从
    C:\xampp\mysql\data\mysql
    中删除这些文件: db.frm db.MRD db.MYI db.opt user.frm user.MYD user.MYI

  • 当你启动mysql时,试着把东西放回去,直到你发现你添加的一件东西阻止它启动。这样做的一个好处是,您可以了解mysql是如何在后台工作的

  • 核选项:

    01.Go to mysql/data/ directory
    02. delete the ibdata1 & ib_logfile*(ib_logfile0,ib_logfile1,ib_logfile101) file
    03. restart xampp server
    
    一些
    port= 8111
    
    'innodb_additional_mem_pool_size=2M'