当我打开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.
这些错误的原因是什么?我该如何纠正它们?
当我试图启动mysql时,我在我的C:\xampp\mysql\data\mysql_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_database阻止mysql启动。
你可以清除这个有问题的数据库,以下步骤可以解决这个问题:
确保mysql和xampp完全关闭。
去你的mysql安装目录,我的是:C:\xampp\mysql\data
您应该看到一个文件夹,其名称为您创建的数据库。我的是test_database。
在其他地方创建一个名为C:\xampp\mysql\data\mysql\backuptablespace的新文件夹
将有问题的数据库表文件夹拖放到备份目录中(不要删除)。
重新启动mysql。对我来说,它像预期的那样在1秒内就开始了。
如果它不起作用,把文件放回你开始的地方,你就会回到你开始的地方。
如果你不想删除数据库并且没有备份:
如果你没有表数据的备份,mysql不会启动,因为某些东西损坏了,你将不得不使用消除的过程来猜测和检查你的方式,确切地说,你做了什么损坏了它。遵循以下步骤:
Make a clone of the entire C:\xampp\ and store it somewhere safe so you can get back to where you started.
Use a "binary search" approach to try to locate the corrupted item in the mysql database. It could be a file, or a table, or a database, or a user or anything.
Delete the entire database and see if that allows mysql to start. If it does, then put back the database and try removing some of the tables. If it doesn't, then try yanking out something else until it does start.
Try removing these files from C:\xampp\mysql\data\mysql:
db.frm
db.MRD
db.MYI
db.opt
user.frm
user.MYD
user.MYI
When you get mysql to start, try putting things back until you find the one thing that you add which prevents it from starting. One bonus for this is you learn how mysql works under the hood.
核选项:
你搞砸了mysql服务器。卸载并重新安装XAMPP可以消除损坏。
我解决了类似的MySQL错误&我认为这个答案将帮助您修复相同类型的MySQL数据库错误。
解决方案:
进入mysql数据库的“data”目录。
我安装XAMPP在D:驱动器上的计算机和mysql的“数据”目录位置我的计算机是“D:\ XAMPP \mysql\data\”。你可能有不同的位置。
取备份MySQL“data”文件夹
首先,你应该创建一个备份的“数据”文件夹使用
任何压缩软件。
给出一个像“data_backup.zip”这样的名称或任何您希望的压缩类型。
我使用winrar压缩软件压缩备份mysql“data”文件夹。
重命名data文件夹
重命名" data "文件夹为" data-oldfiles "。将数据目录重命名为任何新的目录名称是非常重要的。
创建一个新的“data”文件夹
创建一个新文件夹,命名为data
为了解决这个问题,我们需要在mysql数据库中创建一个新的“data”目录。
从“备份”文件夹复制内容
进入“备份”文件夹,复制所有文件。
将备份文件夹中的文件粘贴到数据文件夹中
现在从XAMPP启动MySQL数据库。
您的MySQL数据库将正常启动,不会显示任何错误。
传输所有MySQL项目的数据库、数据文件和日志文件
If you have many database which was used for various projects, then you have to transfer all database from “data-oldfiles” folder to “data” folder.
Copy all databases from the data-old files and paste to the data folder.
Now you have to copy the data file “ibdata1” & all log files “ib_logfile0, ib_logfile1 ” from data-old files folder to the data folder.
If you have many id_logiles then copied all of them.
Now Start MySQL from XAMPP.
Go to phpMyAdmin to check all databases are available & working.
Now start your any website project from localhost to check the MySQL database.
问题解决了!!
现在,您将看到问题已经解决,错误消息“error: MySQL shutdown unexpected .”不会再出现。
如果你对这个问题有任何疑问,请在评论区提出任何问题。
你可以在下面的链接上阅读详细的教程:
错误:MySQL关机意外-解决方案在5个简单的步骤
你也可以观看视频教程来解决这个问题:
错误:MySQL异常关闭
2022年六月
免责声明
尽管很多人说“它起作用了”,但很少有人说“它没有作用”。
很难说是什么原因造成的,而且它也不起作用。就我个人而言,下面提供的解决方案对我有用,到目前为止我没有得到任何问题,因此我分享这个。
我不建议卸载,所以基本上可以备份文件并尝试此解决方案。如果它不起作用,那么重新放置这些文件。
参与过其他版本
这个问题也适用于其他xampp版本。
我本人没有进行过测试,但一些用户进行过测试。
(如果你在不同的版本上测试过,请在评论中告诉我,我会在这里添加)
XAMPP v8.1.6 - Saeid Z
XAMPP v7.4.16 - CapelliC
XAMPP v3.3.0 -我自己
2022年2月(问题)
我今天(2022年2月2日)也遇到了同样的问题。
我使用下面提到的相同解决方案修复了这个问题(参见2021年12月(解决方案))
XAMPP问题截图
XAMPP固定
2021年12月(方案)
因为这个问题是持续的,
我会尽我最大的努力去解决它。
我的问题
每当这个问题发生时,我都会访问这个帖子。我唯一尝试的是卸载xampp并重新安装它,这解决了问题。那是在我的旧系统上。
我使用的是全新的windows 10,没有多余的软件或问题,但我在很长一段时间后又意外关机了。我提出这个问题,希望有人能告诉我到底发生了什么,而不是解决这些问题。但不幸的是,我找不到它。
澄清一下,我的新杂志不是
港口
意外关闭
窗户卡住了
不需要的软件
病毒或恶意软件。
有一天我打开xampp,它停止工作了。
方法一(2021年12月22日)
停止MySQL。
转到C:/xampp/mysql目录,复制数据文件夹,并将其保存在其他地方(可能在另一个驱动器中)作为备份。
打开你的原始数据文件夹(C:/xampp/mysql),按“类型”对文件进行排序。
选择INFO File类型的文件并删除它们(下面的截图)。
启动MySQL。现在应该可以了。
方法1截图
重要的
上述解决方案并不一定能解决问题。有时不会。为了避免丢失数据的主要风险,请尝试以下方法。
只有在需要时才在控制面板中打开MySQL。
不要将XAMPP控制面板设置为windows启动状态。
尽可能备份数据库。如果没有,试着每个周末备份一下。
PS:每当上述方法不起作用时,我会尝试更新这个答案。我将尝试在不卸载XAMPP的情况下以最简单的方式解释它。
如果对你有用,请告诉我。
我尝试了上面所有的答案,但对我来说都不管用。所以最后我尝试了下面的方法,它100%适合我。
如果您担心无法执行以下步骤,为安全起见,您可以对整个XAMPP文件夹进行备份。
第一步:将c:\xampp\mysql\data文件夹重命名为c:\xampp\mysql\data_bkp
新建文件夹c:\xampp\mysql\data。
第三步:复制c:\xampp\mysql\backup中的内容到新的c:\xampp\mysql\data文件夹中。
第四步:复制所有数据库文件夹c:\xampp\mysql\data_bkp到c:\xampp\mysql\data(注意:不要复制mysql、performance_schema和phpmyadmin文件夹)。
步骤5:从c:\xampp\mysql\data_bkp复制ibdata1文件,并将其替换到c:\xampp\mysql\data文件夹中。
步骤6:从XAMPP控制面板启动MySQL。
以上的解决方案没有一个是无效的。它只是暂时有效。几天后,我们又一次面对同样的问题。我每次都失去了所有的脑起搏器。
我不知道确切的答案。但是,我一遍又一遍地做这3个简单的步骤。
将文件夹c:\xampp\mysql\data重命名为c:\xampp\mysql\data_old(可以使用任何名称)。
新建data文件夹c:\xampp\mysql\data
复制mysql\data_old中的所有数据库文件夹到mysql\data中
然后从XAMPP控制面板启动MySQL。
解决了!我用这个方法来解决它:
从控制面板打开shell并启动mysql:
mysqld –-console –-skip-grant-tables –-skip-external-locking
从控制面板打开另一个shell,用下面的命令修复数据库:
mysqlcheck -r --databases mysql --use-frm
停止mysql,关闭shell,正常重启mysql。
参见:https://stackoverflow.com/a/60576807/1662058
步骤01:如果启动XAMPP MySQL时出现错误,
按照以下步骤轻松解决这个问题。
步骤02:停止服务器并进入配置。
步骤03:打开my.ini文件。
步骤04:在记事本文本中找到这2个端口号。
步骤05:更改这两个端口号3306—> 3308或任何其他数字。
使用Ctrl+S保存文本文件后
步骤07:转到XAMPP安装文件夹并打开XAMPP文件夹。
步骤08:找到phpMyAdmin文件夹。
步骤09:打开phpMyAdmin文件夹,找到config.inc.php文件。
步骤10:Change Here端口号之前您在步骤05中修改的端口号。(如3008)和保存此文本文件。
步骤11:关闭所有文件后,转到XAMPP服务器。
步骤12:再次启动MySQL服务器。
步骤13:打开浏览器,输入URL——>> localhost
步骤14:进入PhpMyAdmin
步骤15:phpMyAdmin is Working normal Now。
如果启动Apache服务器时出现错误,
步骤01:停止服务器,并打开配置文件。
步骤02:在文本文件中找到这个Listen数字。
步骤03:将80更改为8000或任何其他值。并保存文本文件。
步骤04:保存文本文件后,打开XAMPP服务器并再次启动Apache服务器。
打开你的网页浏览器。
步骤06:输入localhost:8000
步骤07:现在你可以打开phpMyAdmin。
注意:更改Apache端口号后,必须在URL中的localhost:后面添加。
-----------谢谢大家-----------