使用mysqld --install命令时出现MSVCR120.dll文件丢失错误

Visual C++ 2013 and Visual C++ Redistributable Package

https://support.microsoft.com/en-us/help/3179560/update-for-visual-c-2013-and-visual-c-redistributable-package

进去之后先找到自己的版本,x64还是x86,下载 vcredit ,进行安装即可,安装后再次执行安装mysql --install 命令即可
在这里插入图片描述

<think>我们遇到的问题是:在运行mysqld.exe,系统提示缺少MSVCR120.dll。这是因为MySQL5.7依赖于VisualC++2013运行库(VC++2013Runtime),而系统中没有安装它。解决方案:1.下载并安装VisualC++2013运行库(64位版本)。2.确保安装的是64位版本,因为MySQL5.7是64位的。步骤:1.访问微软官方下载链接(或者从可信赖的镜像下载)。2.安装VC++2013运行库。3.重新运行MySQL服务。由于用户使用的是Windows7,我们需要注意:VC++2013运行库在Windows7上是支持的。下载链接:-64位(x64):https://aka.ms/vs/16/release/vc_redist.x64.exe安装方式:-直接运行下载的安装程序。代码(PowerShell脚本):```powershell#下载VC++2013运行库(64位)$vcRedistUrl="https://aka.ms/vs/16/release/vc_redist.x64.exe"$vcRedistPath="$env:TEMP\vc_redist.x64.exe"#使用Invoke-WebRequest下载Invoke-WebRequest-Uri$vcRedistUrl-OutFile$vcRedistPath#静默安装Start-Process-FilePath$vcRedistPath-ArgumentList"/install","/quiet","/norestart"-Wait#安装完成后,尝试启动MySQL服务netstartMySQL57```解释:1.使用`Invoke-WebRequest`从微软官方下载VC++2013运行库安装程序。2.使用`Start-Process`以静默方式运行安装程序,参数说明:-`/install`:表示安装。-`/quiet`:静默安装,不显示界面。-`/norestart`:安装完成后不重启(如果不需要重启的话)。3.安装完成后,尝试启动MySQL服务(假设服务名为MySQL57)。注意:如果之前已经尝试启动MySQL服务失败,可能需要重启计算机(尽管我们使用了`/norestart`,但有候系统环境变量的更新需要重启)。但通常安装完运行库后就可以直接启动服务了。如果重启计算机后仍然无法启动,可以检查一下是否成功安装了VC++2013运行库。可以通过以下方式检查:-在“控制面板”->“程序和功能”中查看是否有“MicrosoftVisualC++2013Redistributable(x64)-12.0.xxxxx”。如果问题仍然存在,可能是其他原因,比如:-系统文件损坏。-下载的安装包不完整。此,可以尝试重新下载安装,或者使用系统文件检查器(sfc)修复系统文件:```powershellsfc/scannow```另外,如果系统中同需要32位和64位的运行库,也可以安装32位的运行库(即使64位程序不需要,但为了兼容性,有也需要),但这里我们只需要64位。§§相关问题§§:1.如何检查系统中已安装的VisualC++运行库版本?2.在Windows系统中,如何确定一个DLL文件是由哪个程序提供的?3.如果安装VC++运行库后仍然提示缺少其他DLL,该如何处理?4.在Linux系统下,如何解决类似的库依赖问题?</think>### 解决 MySQL 缺少 MSVCR120.dll 错误的完整方案 这个错误表明您的系统缺少 Visual C++ 2013 运行库(x64)。MySQL 5.7 依赖此库运行。以下是详细的解决方案: #### 解决方案 1:安装 VC++ 2013 运行库 (推荐) ```powershell # 下载 VC++ 2013 运行库 (x64) $url = "https://aka.ms/vs/16/release/vc_redist.x64.exe" $output = "$env:TEMP\vc_redist_x64.exe" # 下载并静默安装 Invoke-WebRequest -Uri $url -OutFile $output Start-Process -FilePath $output -ArgumentList "/install", "/quiet", "/norestart" -Wait # 验证安装 $vcInstalled = Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*" | Where-Object { $_.DisplayName -like "*Visual C++ 2013*" -and $_.DisplayName -like "*x64*" } if ($vcInstalled) { Write-Host "VC++ 2013 运行库已成功安装" -ForegroundColor Green } else { Write-Host "安装失败,请尝试手动安装" -ForegroundColor Red } ``` #### 解决方案 2:手动修复步骤 如果上述方法无效,请按顺序执行以下步骤: 1. **下载并安装运行库**: - 官方下载:[VC++ 2013 Redistributable (x64)](https://aka.ms/vs/16/release/vc_redist.x64.exe) - 右键以管理员身份运行安装程序 2. **检查系统文件完整性**: ```cmd :: 以管理员身份运行CMD sfc /scannow dism /online /cleanup-image /restorehealth ``` 3. **重新注册 DLL 文件**: ```powershell # 以管理员身份运行PowerShell regsvr32 /s msvcr120.dll regsvr32 /s msvcp120.dll regsvr32 /s vccorlib120.dll ``` 4. **手动放置 DLL 文件**: ```powershell # 从正常系统复制或下载DLL文件 $dllUrl = "https://download.dll-files.com/msvcr120.dll.zip" $dllPath = "$env:windir\System32\msvcr120.dll" # 下载并放置DLL Invoke-WebRequest -Uri $dllUrl -OutFile "$env:TEMP\msvcr120.zip" Expand-Archive -Path "$env:TEMP\msvcr120.zip" -DestinationPath "$env:windir\System32\" -Force # 注册DLL regsvr32 "$env:windir\System32\msvcr120.dll" ``` #### 解决方案 3:DLL 依赖检查工具 使用 Dependency Walker 分析依赖关系: 1. 下载 [Dependency Walker](https://www.dependencywalker.com/) 2. 分析 `mysqld.exe` 3. 根据报告安装缺少的组件 ```powershell # 自动下载并运行Dependency Walker $depUrl = "https://www.dependencywalker.com/depends22_x64.zip" $depPath = "$env:TEMP\depends" Invoke-WebRequest -Uri $depUrl -OutFile "$env:TEMP\depends.zip" Expand-Archive -Path "$env:TEMP\depends.zip" -DestinationPath $depPath -Force Start-Process "$depPath\depends.exe" -ArgumentList "C:\MySQL\bin\mysqld.exe" ``` #### 永久解决方案:创建独立运行环境 ```powershell # 在MySQL目录创建VC++运行库副本 $vcDlls = @("msvcr120.dll", "msvcp120.dll", "vccorlib120.dll") foreach ($dll in $vcDlls) { $source = "$env:windir\System32\$dll" $dest = "C:\MySQL\bin\$dll" if (Test-Path $source) { Copy-Item -Path $source -Destination $dest -Force Write-Host "已复制 $dllMySQL目录" -ForegroundColor Green } else { Write-Host "未找到 $dll,请先安装VC++运行库" -ForegroundColor Yellow } } # 创建启动包装脚本 @" @echo off setlocal set MYSQL_HOME=C:\MySQL set PATH=%MYSQL_HOME%\bin;%PATH% rem 添加当前目录到DLL搜索路径 set DLL_PATH=%CD%;%MYSQL_HOME%\bin;%PATH% rem 启动MySQL mysqld.exe --defaults-file="%MYSQL_HOME%\my.ini" endlocal "@ | Out-File "C:\MySQL\start_mysql.bat" -Encoding ASCII ``` ### 验证解决方案 ```powershell # 尝试启动MySQL服务 net start MySQL57 # 检查服务状态 Get-Service MySQL57 | Select-Object Status, Name # 查看错误日志 Get-Content "C:\MySQL\data\*.err" -Tail 20 ``` ### 常见问题处理 1. **安装后仍报错**: - 重启系统 - 检查是否有多个VC++版本冲突 - 运行 `chkdsk /f` 2. **权限问题**: ```powershell # 授予Everyone权限 icacls "C:\MySQL\bin\msvcr120.dll" /grant "Everyone:(R)" icacls "C:\MySQL\bin\mysqld.exe" /grant "Everyone:(RX)" ``` 3. **兼容模式设置**: - 右键 mysqld.exe → 属性 → 兼容性 - 勾选"以兼容模式运行" → 选择 "Windows 7" - 勾选"以管理员身份运行" ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值