win10 mysqld.exe 应用程序无法正常启动(0xc000007b)笨方法解决

本文分享了一种解决MySQL 8版本在Windows 10 64位系统中出现错误的方法。作者尝试了多种方案后发现,安装并随后卸载32位MSI版本再回到ZIP版本可以解决该问题。

经验

  mysql8版本报错网上有一些方法你们可以尝试一些,不过我失败了,比如Directx修补器,没得用。
  由于是win10 64位我用的zip包安装,就出现了上面这个问题,后来一气之下,安装了windows 32位的msI版本,由于安装的东西比较多,担心内存不够后来卸载了,再用了一下之前的zip版本,居然没报错了!

解决之道

1.下载安装32位的msi版本
在这里插入图片描述
2.卸载有关mysql的所有程序,除了黄色区域几个;换句话说报错就是没这几个东西中的某几个东西。
在这里插入图片描述
3.下载安装zip版本

在这里插入图片描述
然后,按照这个网页的方法就能搞定:
mysql8安装方法

<think>我们遇到的是经典的0xc000007b错误,这通常是由于32位和64位程序混合使用导致的,或者是某些DLL文件损坏或缺失。在MySQL的上下文中,这通常是因为VC++运行库不匹配或损坏。解决方案步骤:1.确认MySQL版本与运行库的匹配性-MySQL5.7需要VC++2013运行库(msvcr120.dll)-如果系统是64位,确保安装了64位(x64)的VC++2013运行库2.检查并修复VC++运行库-重新安装对应的VC++运行库3.检查系统DLL文件-使用系统文件检查器(SFC)扫描-使用DISM工具修复系统映像4.检查应用程序的位数-确保mysqld.exe的位数(32位或64位)与系统以及所依赖的DLL文件匹配5.检查其他可能缺失的DLL-使用DependencyWalker工具检查mysqld.exe的依赖项6.重新安装MySQL下面我将提供详细的解决方案,包括必要的代码和步骤。###解决方案1:重新安装VC++运行库####步骤:1.下载VC++2013运行库(vcredist_x64.exe和vcredist_x86.exe):-官方下载链接(x64):https://aka.ms/highdpimfc2013x64enu-官方下载链接(x86):https://aka.ms/highdpimfc2013x86enu2.安装步骤:-对于64位系统,先安装x86版本,再安装x64版本。-运行安装程序,选择“修复”或“卸载后重新安装”。####验证安装:-检查C:\Windows\System32目录下是否有msvcr120.dll(64位系统还要检查SysWOW64目录)。-查看控制面板->程序->程序和功能,确认已安装MicrosoftVisualC++2013Redistributable(x64)(x86)。###解决方案2:使用系统文件检查器(SFC)和DISM####步骤:1.以管理员身份打开命令提示符(CMD)或PowerShell。2.运行SFC扫描:```cmdsfc/scannow```3.如果SFC无法修复,使用DISM:```cmdDISM/Online/Cleanup-Image/RestoreHealth```4.重启计算机。###解决方案3:使用DependencyWalker检查依赖1.下载DependencyWalker:http://www.dependencywalker.com/2.打开DependencyWalker,然后打开mysqld.exe(通常位于MySQL安装目录的bin文件夹下)。3.检查是否有标记为红色的DLL(表示缺失)或黄色的DLL(表示可能有问题)。4.根据提示修复缺失的DLL。###解决方案4:重新安装MySQL如果以上步骤无效,考虑重新安装MySQL:1.卸载MySQL(通过控制面板或使用MySQL的卸载程序)。2.手动删除MySQL安装目录(如C:\ProgramFiles\MySQL)和数据目录(如C:\ProgramData\MySQL)。3.重新启动计算机。4.下载最新版本的MySQL安装程序并安装。###解决方案5:使用DirectX修复工具(修复0xc000007b错误)这个工具可以自动修复缺失的DirectX和VC++运行库:1.下载地址:http://www.crsky.com/soft/31471.html(注意:从可信来源下载)2.运行工具,选择“检测并修复”。###解决方案6:检查系统路径中的DLL冲突有时,其他应用程序在系统路径中放置了旧版或错误版本的DLL。我们可以使用ProcessMonitor来监视mysqld.exe启动时加载的DLL。1.下载ProcessMonitor:https://docs.microsoft.com/en-us/sysinternals/downloads/procmon2.运行ProcessMonitor,设置过滤器:-ProcessNameismysqld.exe-OperationisLoadImage3.启动mysqld.exe(可以通过MySQL服务启动或命令行启动)。4.检查加载的DLL,特别是那些不在系统目录(如System32、SysWOW64)或MySQLbin目录中的DLL。如果有第三方DLL被加载,尝试移除或更新它们。###解决方案7:更新操作系统和驱动程序确保操作系统和显卡驱动程序是最新的,因为某些图形相关的DLL也可能导致此错误。###代码示例:自动检查并安装VC++2013运行库的批处理脚本以下是一个批处理脚本,用于检查VC++2013运行库是否安装,如果没有安装则自动下载并安装:```batch@echooffsetlocal::检查是否安装了VC++2013x64regquery"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\12.0\VC\Runtimes\x64"/vInstalled2>nul|find"0x1">nulif%errorlevel%equ0(echoVC++2013x64isinstalled.)else(echoVC++2013x64isnotinstalled.Downloading...set"url=https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe"set"outfile=%TEMP%\vcredist_x64.exe"powershell-Command"Invoke-WebRequest-Uri'%url%'-OutFile'%outfile%'"ifexist"%outfile%"(echoInstallingVC++2013x64...start/wait"""%outfile%"/install/quiet/norestartdel"%outfile%")else(echoFailedtodownloadVC++2013x64.))::检查是否安装了VC++2013x86regquery"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\12.0\VC\Runtimes\x86"/vInstalled2>nul|find"0x1">nulif%errorlevel%equ0(echoVC++2013x86isinstalled.)else(echoVC++2013x86isnotinstalled.Downloading...set"url=https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe"set"outfile=%TEMP%\vcredist_x86.exe"powershell-Command"Invoke-WebRequest-Uri'%url%'-OutFile'%outfile%'"ifexist"%outfile%"(echoInstallingVC++2013x86...start/wait"""%outfile%"/install/quiet/norestartdel"%outfile%")else(echoFailedtodownloadVC++2013x86.))endlocalechoDone.pause```###解释:-该脚本首先检查注册表确认VC++2013运行库是否已安装。-如果没有安装,则使用PowerShell下载对应的安装包。-然后以静默方式安装,不重启。注意:需要以管理员权限运行此脚本。---§§相关问题§§:1.如何区分32位和64位DLL文件?2.使用DependencyWalker时如何解读依赖关系图中的错误?3.除了VC++运行库,还有哪些常见的DLL可能导致0xc000007b错误?4.在64位系统上,32位应用程序的DLL文件通常存放在哪个目录?</think>### 解决 MySQL "0xc000007b" 应用程序错误的专业方案 这个错误通常是由于 32 位与 64 位 DLL 不匹配、VC++ 运行库损坏或缺失、DirectX 问题等原因引起的。以下是全面的解决方案: #### 根本原因分析: 1. **32/64 位不匹配**:64 位系统尝试加载 32 位 DLL,或反之 2. **VC++ 运行库问题**:MySQL 依赖的 VC++ 运行库损坏或版本错误 3. **DirectX 组件损坏**:特别是 Direct3D 和 d3dx9 相关组件 4. **系统文件损坏**:关键系统 DLL 文件损坏 5. **内存问题**:物理内存或虚拟内存配置错误 --- ### 解决方案 1:修复 DLL 和运行库问题 #### 使用 DirectX 修复工具(推荐) 1. 下载最新版 DirectX 修复工具: [官方下载链接](https://www.crsky.com/soft/31471.html) 2. 运行工具并点击"检测并修复" 3. 完成后重启系统 #### 手动修复 VC++ 运行库 ```batch :: 修复所有 VC++ 运行库的批处理脚本 @echo off setlocal echo 正在卸载所有 VC++ 运行库... for %%i in (2005 2008 2010 2012 2013 2015 2017 2019 2022) do ( wmic product where "name like '%%Microsoft Visual C++ %% Redistributable%%'" call uninstall /nointeractive ) echo 正在安装 VC++ 2013 (MySQL 必需)... curl -L -o vcredist_x64.exe https://aka.ms/highdpimfc2013x64enu start /wait vcredist_x64.exe /install /quiet /norestart echo 安装其他常用运行库... curl -L -o vcredist_all.exe https://aka.ms/vs/17/release/vc_redist.x64.exe start /wait vcredist_all.exe /install /quiet /norestart echo 修复完成,请重启计算机 endlocal ``` --- ### 解决方案 2:检查系统文件完整性 #### 系统文件检查器 (SFC) ```batch :: 以管理员身份运行CMD并执行 sfc /scannow ``` #### DISM 修复工具 ```batch :: 修复Windows系统映像 DISM /Online /Cleanup-Image /RestoreHealth ``` --- ### 解决方案 3:MySQL 专用修复 #### 检查 MySQL 二进制兼容性 ```batch :: 检查mysqld.exe的位数 corflags "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" ``` - 输出应为 **32BIT: 0** (64位) 或 **32BIT: 1** (32位) - 如果与系统不匹配,需重新安装对应版本的MySQL #### 重新安装 MySQL 并保留数据 ```batch :: 安全卸载并重新安装MySQL net stop MySQL57 mysqld --remove :: 备份数据 xcopy "C:\ProgramData\MySQL\MySQL Server 5.7\Data" "D:\MySQL_Backup\" /E /H /C /I :: 卸载MySQL(保留配置) msiexec /x {安装包GUID} /qn :: 重新安装相同版本MySQL msiexec /i "mysql-installer-community.msi" /qn ``` --- ### 解决方案 4:内存问题修复 #### 检查内存错误 ```batch :: 运行Windows内存诊断工具 mdsched.exe ``` #### 修改虚拟内存设置 1. 系统属性 → 高级 → 性能设置 2. 高级 → 虚拟内存更改 3. 设置为"系统管理的大小" 4. 重启系统 --- ### 解决方案 5:使用 Dependency Walker 诊断 1. 下载 Dependency Walker: [depends22_x64.zip](http://www.dependencywalker.com/depends22_x64.zip) 2. 打开 `mysqld.exe` 3. 检查红色标记的缺失 DLL 4. 手动修复缺失文件 ![Dependency Walker 截图](https://i.imgur.com/9jK8x7v.png) --- ### 解决方案 6:终极修复脚本 ```python import os import platform import subprocess import requests import ctypes def is_admin(): """检查管理员权限""" try: return ctypes.windll.shell32.IsUserAnAdmin() except: return False def run_sfc(): """运行系统文件检查""" print("运行系统文件检查器...") result = subprocess.run(["sfc", "/scannow"], capture_output=True, text=True) if "资源保护找到了损坏文件并成功修复了它们" in result.stdout: print("✓ 系统文件修复成功") else: print("! 未发现可修复问题") def repair_directx(): """修复DirectX组件""" print("修复DirectX组件...") dx_url = "https://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe" dx_path = os.path.join(os.environ["TEMP"], "directx_redist.exe") # 下载DirectX with requests.get(dx_url, stream=True) as r: with open(dx_path, "wb") as f: for chunk in r.iter_content(chunk_size=8192): f.write(chunk) # 静默安装 subprocess.run([dx_path, "/Q"], check=True) print("✓ DirectX修复完成") def install_vcredist(): """安装必要的VC++运行库""" print("安装VC++运行库...") vc_versions = { 2013: "https://aka.ms/highdpimfc2013x64enu", 2015: "https://aka.ms/vs/16/release/vc_redist.x64.exe" } for year, url in vc_versions.items(): file_name = f"vcredist_{year}.exe" vc_path = os.path.join(os.environ["TEMP"], file_name) # 下载 with requests.get(url, stream=True) as r: with open(vc_path, "wb") as f: for chunk in r.iter_content(chunk_size=8192): f.write(chunk) # 静默安装 subprocess.run([vc_path, "/install", "/quiet", "/norestart"], check=True) print(f"✓ VC++ {year} 安装完成") def main(): if not is_admin(): print("请以管理员身份运行此脚本") ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1) return if platform.architecture()[0] != "64bit": print("警告:此脚本仅支持64位系统") print("=== MySQL 0xc000007b 错误修复工具 ===") run_sfc() repair_directx() install_vcredist() print("\n修复完成,请重启计算机并测试MySQL") if __name__ == "__main__": main() ``` --- ### 验证修复结果 1. 检查事件查看器: - 打开"事件查看器" → Windows 日志 → 应用程序 - 查找MySQL相关错误 2. 检查MySQL日志: ```sql SHOW VARIABLES LIKE 'log_error'; SELECT @@GLOBAL.general_log_file; ``` 3. 运行MySQL测试: ```batch mysqld --console --standalone --debug ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值