当我打开XAMPP并单击启动MySQL按钮时,它给了我一个错误。 我刚才启动了它,但现在它不工作了。

12:19:12 PM [mysql] Attempting to start MySQL app... 12:19:12 PM [mysql] Status change detected: running 12:19:13 PM [mysql] Status change detected: stopped 12:19:13 PM [mysql] Error: MySQL shutdown unexpectedly. 12:19:13 PM [mysql] This may be due to a blocked port, missing dependencies, 12:19:13 PM [mysql] improper privileges, a crash, or a shutdown by another method 12:19:13 PM [mysql] Press the Logs button to view error logs and check 12:19:13 PM [mysql] the Windows Event Viewer for more clues 12:19:13 PM [mysql] If you need more help, copy and post this 12:19:13 PM [mysql] entire log window on the forums

以下是错误日志的内容:

2013-08-02 12:19:12 4536 [Note] Plugin 'FEDERATED' is disabled. 2013-08-02 12:19:12 f64 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator. 2013-08-02 12:19:12 4536 [Note] InnoDB: The InnoDB memory heap is disabled 2013-08-02 12:19:12 4536 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions 2013-08-02 12:19:12 4536 [Note] InnoDB: Compressed tables use zlib 1.2.3 2013-08-02 12:19:12 4536 [Note] InnoDB: Not using CPU crc32 instructions 2013-08-02 12:19:12 4536 [Note] InnoDB: Initializing buffer pool, size = 16.0M 2013-08-02 12:19:12 4536 [Note] InnoDB: Completed initialization of buffer pool 2013-08-02 12:19:12 4536 [Note] InnoDB: Highest supported file format is Barracuda. 2013-08-02 12:19:12 4536 [Note] InnoDB: The log sequence numbers 0 and 0 in ibdata files do not match the log sequence number 1616798 in the ib_logfiles! 2013-08-02 12:19:12 4536 [Note] InnoDB: Database was not shutdown normally! 2013-08-02 12:19:12 4536 [Note] InnoDB: Starting crash recovery. 2013-08-02 12:19:12 4536 [Note] InnoDB: Reading tablespace information from the .ibd files...

最重要的错误信息在这里:

2013-08-02 12:19:12 4536 [ERROR] InnoDB: 试图打开先前打开的表空间。 以前的表空间mysql/innodb_table_stats在filepath: .\mysql\innodb_table_stats.ibd使用的是空间ID: 1。 在文件路径:.\xat\payments.ibd下无法打开空间ID: 1的表空间xat/payments

日志的其余部分:

InnoDB: Error: could not open single-table tablespace file .\xat\payments.ibd InnoDB: We do not continue the crash recovery, because the table may become InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it. InnoDB: To fix the problem and start mysqld: InnoDB: 1) If there is a permission problem in the file and mysqld cannot InnoDB: open the file, you should modify the permissions. InnoDB: 2) If the table is not needed, or you can restore it from a backup, InnoDB: then you can remove the .ibd file, and InnoDB will do a normal InnoDB: crash recovery and ignore that table. InnoDB: 3) If the file system or the disk is broken, and you cannot remove InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf InnoDB: and force InnoDB to continue crash recovery here.

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


当前回答

first of all, make a backup file of your database C:\xampp\mysql\data copy this file and past it somewhere in your pc. After this open, the data file and also open the XAMPP server try to delete the files step by step one by one after deleting each file try to run the MySQL server after deleting a single file as shown in the screenshot thus your databases won't delete. if the file deletion does not work then try to copy the same files from the backup folders and repeat this until it works... this is time taking but this worked for me I have solved this in 20 minutes.

其他回答

尝试以下解决方案来解决这个问题。在执行此过程之前,将数据文件夹C:\xampp\mysql\data重命名为old_data。 然后在SQL文件夹中创建一个名为data的新文件夹。 将备份C:\xampp\mysql\backup文件夹中的所有文件和文件夹复制到data文件夹中。 在最后一步中,从old_data文件夹复制ibdata1文件和test文件夹,并将其放入data文件夹中。 现在运行程序并享受吧!

进入xampp/mysql/data目录

将文件夹data重命名为data_backup 创建新文件夹数据 从备份文件复制到数据 从数据文件夹中删除ibdata1 将ibdata1从data_backup文件夹拷贝到data文件夹 将所有数据库从data_backup复制到data文件夹 重启xampp。它会开始工作

只需遵循两个步骤

进入xampp\mysql\backup 复制备份文件夹中的所有内容 转到xampp\mysql\data 粘贴所有从备份文件夹复制的数据文件夹 这一切。

也可以按照视频描述进行修复,而不会丢失任何数据:

https://www.youtube.com/watch?v=hB1wshpP3Jc

或按照文章描述修复而不丢失任何数据:

https://webjourney.dev/error-mysql-shutdown-unexpectedly-solve-without-loosing-any-data-webjourney

解决方案:遵循下面列出的步骤。

步骤1。将文件夹c:\xampp\mysql\data重命名为c:\xampp\mysql\data_bkp(可以使用任何名称)。

步骤2。新建文件夹c:\xampp\mysql\data。

步骤3。复制mysql\backup中的内容到新的mysql\data文件夹中。

步骤4。将mysql\data_bkp中的所有数据库文件夹复制到mysql\data中(跳过mysql\data_bkp中的mysql、performance_schema和phpmyadmin文件夹)。 IMPORTATN注意:-请不要替换现有的文件,同时粘贴(点击跳过这些文件)

第5步。最后从mysql\data_bkp复制ibdata1文件,并将其替换到mysql\data文件夹中。

步骤6。从XAMPP控制面板启动MySQL。

而且,它已经完成了。没有数据库丢失,没有端口更改,没有以管理员身份运行,没有强制恢复,没有杀死mysqld进程,没有从以前的版本恢复,没有更多的错误。

对我来说,问题是:

由于项目规模太大,我习惯将电脑休眠,而不是关闭。我太懒了,重新打开了所有程序。

在尝试其他方法之前,我建议您做以下简单的事情。否则,你的MySQL服务器就会一团糟。

打开任务管理器并结束XAMPP进程。 以管理员身份重新运行XAMPP应用程序。

如果不行,

保存所有未保存的程序,重新启动电脑。 以管理员身份运行XAMMP。

另外,一定要检查3306和5040端口。在默认设置下运行MySQL需要这两个端口。

查看@Ryan Williams的回答,了解为什么作为管理员运行XAMPP很好。