当我打开XAMPP并单击启动MySQL按钮时,它会给我一个错误。 我刚刚开始使用它,但现在它无法正常工作。
12:19:12 PM [mysql]试图启动MySQL应用程序...
下午12:19:12 [mysql]检测到状态变化:运行
下午12:19:13 [mysql]检测到状态变化:已停止
12:19:13 PM [mysql]错误:MySQL意外关闭。
12:19:13 PM [mysql]这可能是由于端口被阻塞,缺少依赖性,
12:19:13 PM [mysql]不正当的权限,崩溃或其他方法的关闭
12:19:13 PM [mysql]按Logs按钮查看错误日志并检查
下午12:19:13 [mysql] Windows事件查看器获取更多线索
12:19:13 PM [mysql]如果您需要更多帮助,请复制并发布此文件 12:19:13 PM [mysql]论坛上的整个日志窗口
以下是错误日志的内容:
2013-08-02 12:19:12 4536 [注意]插件'FEDERATED'被禁用 2013-08-02 12:19:12 f64 InnoDB:警告:使用innodb_additional_mem_pool_size是DEPRECATED。在将来的版本中可以删除此选项,以及选项innodb_use_sys_malloc和InnoDB的内部内存分配器。
2013-08-02 12:19:12 4536 [注意] InnoDB:InnoDB内存堆被禁用了 2013-08-02 12:19:12 4536 [注意] InnoDB:互斥锁和rw_locks使用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与ib_logfiles中的日志序列号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_table_stats 在文件路径中使用空格ID:1:。\ mysql \ innodb_table_stats.ibd 。
无法打开在文件路径中使用空格ID:1的表空间 xat / payments :。\ xat \ payments.ibd
日志的其余部分:
InnoDB:错误:无法打开单表表空间文件。\ xat \ payments.ibd
InnoDB:我们不会继续崩溃恢复,因为该表可能会成为
InnoDB:如果我们无法将InnoDB日志中的日志记录应用于它,则会损坏 InnoDB:解决问题并启动mysqld:
InnoDB:1)如果文件中存在权限问题,则mysqld不能为 InnoDB:打开文件,你应该修改权限 InnoDB:2)如果不需要该表,或者您可以从备份中恢复它,
InnoDB:然后你可以删除.ibd文件,而InnoDB会做正常的 InnoDB:崩溃恢复并忽略该表 InnoDB:3)如果文件系统或磁盘坏了,你就无法删除
InnoDB:.ibd文件,你可以设置innodb_force_recovery> my.cnf中的0 InnoDB:并强制InnoDB在这里继续崩溃恢复。
这些错误的原因是什么?如何纠正?
答案 0 :(得分:288)
停止!请不要删除
ibdata1
文件!
删除该文件就像在数据库上玩俄罗斯轮盘赌一样,它可以正常工作并重新建立所有内容,但也可能会损害您拥有的每个数据库。相反,请首先尝试使用XAMPP随附的 MySQL备份文件夹。下一个也是如此:
mysql/data
重命名为mysql/data_old
(您可以使用任何名称)mysql/data
mysql/backup
中驻留的内容复制到新的mysql/data
文件夹中mysql/data_old
中的所有数据库文件夹复制到mysql/data
(从data_old跳过mysql,performance_schema和phpmyadmin文件夹)ibdata1
复制mysql/data_old
文件并将其替换在mysql/data
文件夹内然后,瞧!
答案 1 :(得分:154)
嘿,我刚刚做了这件事并且有效:
C:\xampp\mysql\data
目录ibdata1
文件应该有效
答案 2 :(得分:25)
如果上述答案无效,则可以尝试删除数据中除文件夹以外的所有文件
转到: C:\ xampp \ mysql \ data
之后: 转到:C:\ xampp \ mysql \ bin
然后使用记事本 my.ini 打开 ,它看起来像这样。
然后删除端口3306或在端口3306中添加注释,并将其更改为8111,然后以管理员身份运行xamp,并且运行良好。
答案 3 :(得分:21)
它应该修复它。
答案 4 :(得分:14)
我的Xampp MySQL的工作原理如下:
01.Go to mysql/data/ directory
02. delete the ibdata1 & ib_logfile*(ib_logfile0,ib_logfile1,ib_logfile101) file
03. restart xampp server
答案 5 :(得分:10)
尝试启动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的启动。
您可以吹走有问题的数据库,这些步骤可以解决问题:
C:\xampp\mysql\data
test_database
。C:\xampp\mysql\data\mysql\backuptablespace
如果它不起作用,请将文件放回到您开始的位置,然后您将返回到开始位置。
如果您不想删除数据库但没有备份:
如果你没有表数据的备份,并且mysql因为某些东西被破坏而无法启动,你将不得不使用消除过程来猜测 - 并 - 检查你所做的那些损坏它的方式。请按照以下步骤操作:
C:\xampp\
并将其存放在安全的地方,以便您可以回到原来的位置。尝试从C:\xampp\mysql\data\mysql
删除这些文件:
db.frm
db.MRD
db.MYI
的db.opt
user.frm
user.MYD就
user.MYI
当你启动mysql时,请尝试重新放置,直到找到你添加的一个阻止它启动的东西。这方面的一个好处是你可以了解mysql的工作原理。
核选项:
你做的事搞砸了mysql服务器。卸载并重新安装XAMPP应该可以撤消损坏。
答案 6 :(得分:9)
当您不以管理员身份运行XAMPP时,经常关闭MySQL会导致损坏,这意味着您必须修复或删除表。为避免这种情况,您需要以管理员身份运行XAMPP,或使用正确的命令提示符方法关闭MySQL。
您可以像Kratos建议的那样删除ibdata1
,但这可能会使您的数据库损坏,因为数据库的其他部分仍在/mysql/data/
文件夹中。就我而言,这些残留数据阻止了我成功安装WordPress。
清除损坏的一种更简洁的方法是还原整个/mysql/data/
文件夹。 Windows具有内置文件夹版本控制功能 - 右键单击/mysql/data/
并选择Restore previous versions
。然后,您可以删除该文件夹的当前内容,并将其替换为旧版本的内容。
附录:为了确保您不会忘记以管理员身份运行XAMPP,您可以右键单击XAMPP快捷方式,转到Properties
,然后转到Advanced
,最后勾选Run as administrator
答案 7 :(得分:7)
我也遇到过这个问题,这就是我解决的问题。
1.确保xampp不在子目录下。例如,它应该是C:\ xampp
2.您可能需要在运行应用程序时以管理员身份运行。
希望这会奏效!
答案 8 :(得分:3)
希望有帮助!
答案 9 :(得分:3)
我面临同样的问题,上面提到的解决方案都没有帮助我。 我去了mysql配置文件(my.ini)并更改了[mysqld]下的端口号。默认mysql在3306端口上运行。
port= 3306
我把它改成了,
port= 8111
然后以管理员身份运行。最后这对我有用。
答案 10 :(得分:2)
请不要删除此文件(ibdata1
),因为您的所有数据都将被删除!
我建议三种方式:
A:
1-从XAMPP control panel
退出。
1-将文件夹mysql/data
重命名为mysql/data_old
(可以使用任何名称)
2-创建一个新文件夹mysql/data
3-将mysql/backup
中驻留的内容复制到新的mysql/data
文件夹中
4-将mysql/data_old
中的所有数据库文件夹复制到mysql/data
(从data_old跳过mysql,performance_schema和phpmyadmin文件夹)
5-最后从ibdata1
复制mysql/data_old
文件,并将其替换在mysql/data folder
中
6-重新启动系统。
B :
1-停止所有SQL服务。
2-接下来,再次启动所有sql服务。
C :
1-打开XAMPP控制面板
2-单击Config按钮,在mysql前面,单击my.ini
3-更改客户端端口和服务器端口。
答案 11 :(得分:2)
解决这个问题的方法如下:
C:\xampp\mysql\data
答案 12 :(得分:2)
<div>
<input type="number" formControlName="capacity">
<button (click)="increament()">-</button>
<button (click)="decreament()">+</button>
</div>
ngOnInit() {
this.settingForm = this.fb.group({
capacity: new FormControl(1, [
Validators.required,
Validators.min(1),
Validators.max(5)
])
})
}
increament(){
this.settingForm.get('capacity').value +1;
}
decreament(){
this.settingForm.get('capacity').value -1;
}
答案 13 :(得分:2)
工作解决方案 :- 按照下面列出的步骤进行操作。
步骤 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 文件夹)。 重要提示 :- 请不要在粘贴时替换现有文件(点击跳过这些文件)
步骤 5. 最后从 mysql\data_bkp 复制 ibdata1 文件并将其替换到 mysql\data 文件夹中。
步骤 6。从 XAMPP 控制面板启动 MySQL。
而且,完成。没有丢失数据库,没有改变端口,没有以管理员身份运行,没有强制恢复,没有杀死mysqld进程,没有从以前的版本恢复,没有更多的错误。
答案 14 :(得分:2)
对我有用的是:
from PyQt5 import QtCore, QtGui, QtWidgets
class ConfigureBar(QtWidgets.QToolBar):
def __init__(self, parent=None):
super().__init__(parent)
self.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
# or
# self.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.addAction(QtGui.QIcon("some_icon.png"), "Hi")
self.addSeparator()
self.addAction(QtGui.QIcon("some_icon.png"), "Hello")
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
toolbar = ConfigureBar()
w = QtWidgets.QMainWindow()
w.addToolBar(toolbar)
w.show()
sys.exit(app.exec_())
中为Logs
打开MySql
。XAMPP panel
中运行另一个mysqlid实例3306
,然后找到task manager(Ctrl+Shift+Esc)
和mysqlid
。答案 15 :(得分:2)
大家只是确保你没有安装MySql Server。因为我预先安装了MySql服务器,当我从xampp控制面板启动mysql时,一些端口冲突正在发生而且无法正常工作..所以在从xampp控制面板启动mysql之前确保没有安装mysql服务器。我使用.net所以我在过去安装了mysql服务器。卸载它解决了我的问题......
答案 16 :(得分:2)
我解决了类似的MySQL错误,我认为此答案将帮助您修复相同类型的MySQL数据库错误。
解决方案:
备份MySQL“数据”文件夹
首先,您应该使用以下命令创建“ data”文件夹的备份 任何压缩软件。
使用“ data_backup.zip”之类的名称或您希望的任何压缩类型。
我使用winrar压缩软件来压缩和备份mysql“ data”文件夹。
重命名“数据”文件夹
创建一个新的“数据”文件夹
从“备份”文件夹复制内容
传输所有MySQL项目数据库,数据文件和日志文件
如果您有许多用于各种项目的数据库,则必须将所有数据库从“ data-oldfiles”文件夹转移到“ data”文件夹。
从旧数据文件复制所有数据库,然后粘贴到数据文件夹。
现在,您必须将数据文件“ ibdata1”和所有日志文件“ ib_logfile0,ib_logfile1”从旧数据文件夹复制到数据文件夹。
如果您有许多id_logile,则将其全部复制。
现在从XAMPP启动MySQL。
转到phpMyAdmin检查所有数据库是否可用并且正常工作。
现在从本地主机启动任何网站项目,以检查MySQL数据库。
问题已解决!
您可以在下面的链接中阅读详细教程: Error: MySQL shutdown unexpectedly – Solution in 5 easy steps
您也可以观看视频教程来解决该问题:
答案 17 :(得分:2)
配置 - &gt; Apache-&gt;打开httpd.conf。搜索Listen或80,将监听端口更新为8081保存并重启服务器。 哦,如果你有Skype,请关闭Skype。
答案 18 :(得分:1)
遇到了同样的问题。
转到 xampp/mysql/data
并删除所有文件但不删除文件夹!与数据库。
之后一切都按预期工作,包括 phpmyadmin 和控制台。
如果这没有帮助。您可以删除 xampp/mysql/data 文件夹并将 xampp/mysql/_old_data 重命名回 xampp/mysql/data。 (回滚)并尝试不同的东西。
答案 19 :(得分:1)
答案 20 :(得分:1)
我从c:\ xampp \ mysql \ data \删除了每个文件,除了my.ini 而且有效
答案 21 :(得分:1)
首先,制作数据库C:\ xampp \ mysql \ data的备份文件,然后将该文件复制并粘贴到PC中的某个位置。打开之后,数据文件和XAMPP服务器也将打开,尝试在删除每个文件后一步一步地删除文件,如截图所示,尝试在删除单个文件后运行MySQL服务器,因此数据库不会删除。如果文件删除不起作用,则尝试从备份文件夹中复制相同的文件,然后重复此操作直到它起作用为止。
答案 22 :(得分:1)
转到C:\ xampp \ mysql \ backup。
复制所有文件。
将它们粘贴到C:\ xampp \ mysql \ data。
如果Windows要求您替换某些文件,请替换它们。
如果您的XAMPP控制窗格处于活动状态,请关闭它。
转到C:\ xampp,找到xampp-control,运行它。
启动Apache,启动MySQL。
就是这样。
享受!
答案 23 :(得分:1)
第1步:完全关闭Xampp控制器
第2步:打开C:\ xampp \ mysql \ backup
步骤3:从备份文件夹复制所有文件
第4步:打开C:\ xampp \ mysql \ data
步骤5:将所有文件粘贴到数据文件夹中
第6步:重新启动Xampp控制器
答案 24 :(得分:1)
对我来说,我退出Skype占据端口80,然后Apache在80端口运行得很开心,而不是我运行Skype并且这次选择了另一个端口。
答案 25 :(得分:1)
确保系统时间正确。我的某种方式设定为2040年,纠正日期解决了这个问题。
答案 26 :(得分:1)
这就是我所做的。我重新启动了电脑。接下来我运行services.msc。我停止了MySQL服务,然后重新启动它。重新启动了Xampp服务器。
答案 27 :(得分:0)
如果此处列出的解决方案都不能像我一样对您不起作用,那么
对我有用。
答案 28 :(得分:0)
在我将我的mysql数据和htdocs同步到dropbox的情况下,我只需要删除mysql / data文件夹和子文件夹中的冲突文件。冲突的文件可以通过其名称来识别,dropbox会告诉你。它解决了我的问题。
答案 29 :(得分:0)
转到:c:C:\xampp\mysql
将文件夹“data”重命名为“data_old”(您可以使用任何名称) 创建一个新文件夹“数据” 将“backup”文件夹的内容复制到新的“data”文件夹中。 将“data_old”的所有内容复制到“data”(跳过那些文件夹“mysql”、“performance_schema”和“phpmyadmin”)***不替换目标中的文件(跳过这些文件)**
重启 XAMPP 它会起作用
答案 30 :(得分:0)
Error: MySQL shutdown unexpectedly This is the best answer 1)Rename the folder mysql/data to mysql/data_old (you can use any name) 2)Create a new folder mysql/data 3)Copy the content that resides in mysql/backup to the new mysql/data folder 4)Copy all your database folders that are in mysql/data_old to mysql/data (skipping the mysql, performance_schema, and phpmyadmin folders from data_old) 5)Finally copy the ibdata1 file from mysql/data_old and replace it inside mysql/data folder 6)Start MySQL from XAMPP control panel
答案 31 :(得分:0)
为此,您需要单击Modules Services下的x选项并安装MYSQL服务。然后启动服务。你走了。
答案 32 :(得分:0)
答案 33 :(得分:0)
答案 34 :(得分:0)
上面没有任何解决方案适用于我。然后我在下面做了:
我删除了C:\ xampp \ mysql \ data \目录下的所有文件,除了此目录中的文件夹。 它工作得很好,但我以前的数据库现在不能正常工作。 所以,如果你不在乎,它会在phpmyadmin中删除你以前的所有数据库。
答案 35 :(得分:0)
如果删除文件均无效,则可能是您的mysql服务未运行。 转到services.msc并启动mysql服务
答案 36 :(得分:0)
在我的情况下,我按照以下步骤进行了工作,
在Xampp控制面板中,单击右侧工具栏上的“服务”按钮
然后从服务列表中找到“ MySQL”
单击它,然后从面板的左侧单击“停止”
在Xampp控制面板中返回并单击开始。
答案 37 :(得分:0)
如果崩溃消息是&#34; mysql.exe已停止工作&#34;。只需运行 xampp-control.exe作为管理员即可立即解决您的问题。
答案 38 :(得分:0)
如果您使用MariaDB,可以试试这个:
答案 39 :(得分:0)
我在mysql / bin / my.ini中注释此语句
'innodb_additional_mem_pool_size=2M'
它解决了我的问题。比你们每个人
答案 40 :(得分:0)
我尝试了很多方法。这是我第二次发生这种情况。第一次,我必须重新安装xampp。第三天,mysql再次崩溃。我已经尝试了在互联网上找到的所有内容。就像在my.ini文件中的innodb_flush_method = normal一样,删除ibdata1,ib_logfile1,ib_logfile0文件以及其他文件,但这些都不起作用。 因此,后来我尝试以管理员权限运行xampp并按照xampp控制面板本身的指示安装apache和mysql作为服务。启动mysql之后,我再次读取错误日志,从那里我知道我的数据库之一对此负责。该数据库文件不会让mysql启动。因此,我删除了数据文件夹中的所有内容,然后在cmd中导航至C:/ xampp / mysql / bin路径并运行以下命令:
mysqld-初始化
mysql_install_db
并且mysql重新开始运行。 但是我的数据库和数据丢失了。
答案 41 :(得分:0)
从C:\xampp\mysql
创建一个备份mysql文件夹。
然后转到C:\xampp\mysql\backup
复制所有文件并将其粘贴到C:\xampp\mysql\data
。
然后从旧的备份文件夹中查看ibdata1
文件,您可以在C:\xampp\mysql\data
中找到它。复制此文件并将其粘贴到C:\xampp\mysql\data
中。
现在重新启动xampp,它应该可以工作。
答案 42 :(得分:0)
这意味着您已经在端口3306上运行了一个MySQL数据库。
在XAMPP控制面板中,按“配置”按钮,然后按“ my.ini”。之后,按Ctrl-F并搜索“ 3306”。将找到的任何“ 3306”替换为您选择的其他端口号(您可以选择3307或3308-我选择了2811,它起作用了)。
在替换了写入“ 3306”的每个位置之后,保存文件并再次按控制面板上的“开始”。
答案 43 :(得分:0)
从mysql / data重命名以下文件 ib_logfile0 ib_logfile1 ibdata1
my.cnf 根据您的内存,将innodb_buffer_pool_size设置为200M innodb_log_buffer_size到32M
重新启动apache服务器
希望对您有帮助
答案 44 :(得分:0)
答案 45 :(得分:0)
那是更精确的答案,对我有用!!!! ! 消除损坏的一种更干净的方法是还原整个/ mysql / data /文件夹。 Windows具有内置的文件夹版本控制-右键单击/ mysql / data /,然后选择“还原以前的版本”。然后,您可以删除文件夹的当前内容,并将其替换为旧版本的内容。 如上文Ryan Williams所述。
答案 46 :(得分:0)
转到任务管理器 然后搜索mysqld并右键单击并选择END TASK并刷新XAMPP
答案 47 :(得分:0)
对我来说,问题是:
我以前hibernate
曾经使用我的PC,而不是因为项目规模大而关闭。我懒得重新打开所有程序。
在尝试任何其他操作之前,建议您做以下简单的事情。否则,您会搞砸MySQL服务器。
如果无效,
此外,请确保检查3306
和5040
端口。这两个端口是在默认设置下运行MySQL所必需的。
查看@Ryan Williams答案,以了解为什么以管理员身份运行XAMPP很好。
答案 48 :(得分:-1)
通过重新安装Xampp修复了该问题。
如果您不想遍历对方提出的所有技术知识。
备份htdocs文件夹,然后卸载Xampp, 它将询问您是否要保留htdocs文件夹,选择退出。 完全卸载, 去除残留物。 再次安装, 复制回备份的htdocs文件夹。
您完成了。
答案 49 :(得分:-2)
答案 50 :(得分:-2)