ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Windows下MySQL MSI安装全流程:从下载到配置排坑指南

Windows下MySQL MSI安装全流程:从下载到配置排坑指南 最近帮几个同事在Windows上装本地MySQL数据库发现大家在同一个地方栽跟头要么下载的安装包不对要么双击MSI文件没反应要么装到一半卡在配置界面要么好不容易装完了命令行又连不上。折腾一圈下来最稳妥的还是用官方MySQL Installer这个MSI安装包。这篇教程就围绕mysql.msi安装步骤来写从下载、安装、配置到验证把Windows本地搭建MySQL数据库的完整流程走一遍顺便把那些安装过程中大概率会踩的坑也提前排掉。无论你是刚入门要装个数据库练手还是开发环境需要本地起一个MySQL实例这文章都能直接照着操作。1. 装之前先把这几件事搞清楚1.1 为什么推荐用MSI安装MySQLMySQL在Windows上的安装方式主要有两种一种是从官网下载ZIP压缩包手动解压配置另一种就是下载官方MySQL Installer的MSI安装包走图形化安装向导。ZIP方式不受目录限制、下载也快但需要自己初始化数据目录、手动创建服务、手工写配置文件对于刚接触MySQL的人来说门槛偏高一步弄错后面全是麻烦。MSI安装包则是Windows标准的安装程序格式双击后打开图形界面安装过程会自动完成注册表写入、服务注册、目录创建这些操作配置环节全部有向导提示对新手友好得多也方便以后卸载。提示MSI全称是Windows Installer Package是微软标准化的安装包格式。MySQL官方提供的MSI安装包基于Windows Installer技术安装过程由系统组件统一管理所以安装、修复、卸载都会更稳定规范。1.2 系统环境先自查一遍开始之前花两分钟确认系统环境能省掉后面很大一部分麻烦。操作系统版本Windows 10、Windows 11都可以Windows Server 2016及以上版本也问题不大。用Win R打开运行框输入winver回车就能看到系统版本号。权限安装MSI必须有管理员权限。建议先右键安装包选择“以管理员身份运行”。系统组件MySQL 8.0的MSI安装包在Windows上依赖Visual C Redistributable运行库多数情况下系统已经自带如果没装安装器会提示并自动安装也可以提前去微软官方下载安装对应版本的运行库。端口占用检查MySQL默认使用3306端口安装前最好确认一下这个端口没被其他程序占用。用Win R打开运行框输入cmd回车在命令行里执行netstat -ano | findstr 3306如果什么都没有输出说明3306端口空闲。如果出现一行记录说明端口被占用可以先看看是什么进程占用的或者干脆在安装配置阶段换个端口。这里建议尽量保持3306后续连接、工具配置都省心。1.3 官网下载安装包时怎么选MySQL下载一定要认准官方网站。打开MySQL官网进入Downloads页面选MySQL Community Server。这个社区版是免费的也完全够我们日常开发和学习使用。进入下载页后会发现有Windows (x86, 32-bit), MSI Installer和Windows (x86, 64-bit), MSI Installer等不同选项注意选64位的MSI Installer文件大小大概在200多MB到400MB左右取决于版本。还有一个小版本的MSI文件体积更小但那是联网安装器装的过程中需要实时下载组件网络不好容易卡住。稳妥起见我一般直接下载完整的MSI Installer。版本选择方面如果没特殊兼容性要求直接选最新的8.0.x版本就好。8.0相比5.7在性能、JSON支持、窗口函数、默认字符集等方面都有明显提升已经是目前的主流版本。只有在老项目明确要求5.7时才需要选择5.7系列。下载页面经常会要求注册或登录Oracle账号不过一般都有“No thanks, just start my download.”的跳过链接点那个就能直接下载不用注册。2. 一步步走完MSI安装流程2.1 双击没反应或提示“需要新应用打开”怎么办下载完成后得到一个类似mysql-installer-community-8.0.36.0.msi的文件。最理想的情况是直接双击就能弹出安装界面但实际中经常遇到两种问题第一种情况双击后鼠标转个圈就没了反应。这多半是权限问题或安全软件拦截解决办法是右键安装包选择“以管理员身份运行”。第二种情况系统提示“需要新应用打开此msi”或者“Windows无法打开此文件”说明系统的MSI文件关联出了问题。解决办法是用Windows Installer命令行来手动执行安装。按Win R打开运行框输入cmd打开命令行窗口然后把msi文件拖进命令行窗口在前面加上msiexec /i命令格式如下msiexec /i C:\Users\你的用户名\Downloads\mysql-installer-community-8.0.36.0.msi执行后就会弹出安装界面。msiexec是Windows Installer的命令行程序/i参数表示安装install这是绕过文件关联问题最有效的招数。还有一种情况是双击时提示“Windows Installer程序包有问题”这种多半是安装文件没下载完整重新下载一次即可优先使用Chrome或Edge这类浏览器下载避免下载工具中途断流导致文件损坏。2.2 安装类型怎么选Developer Default还是CustomMSI安装器打开后首先进入的是安装类型选择界面。这里有几种类型各自的适用场景不太一样Developer Default开发人员默认安装会安装MySQL Server、MySQL Shell、MySQL Workbench、MySQL Router、样例数据库等一大堆组件。适合把本机当作开发环境、想用官方图形化工具的场景。Server only只安装数据库服务端不装任何图形工具。适合服务器环境或者你已经有Navicat等其他客户端工具的场景。Custom自定义选择组件。适合对组件有明确需求、不想装多余东西的进阶用户。Full全部安装占用空间较大一般不需要。第一次安装建议选Developer Default把常用的组件都装上尤其是MySQL Workbench这个官方图形化管理工具后面操作数据、看表结构都很方便。如果你后续打算用Navicat或者其他客户端工具连接选Server only就够了省得安装过程下载一堆用不到的组件。选好后点击Next安装器会自动检查依赖项如果缺少必要的环境组件会列在Check Requirements页面上。比如缺少Visual C Redistributable或更新的.NET Framework时安装器会给出提示。点Execute按钮就能自动安装缺失的组件装完可能需要重启电脑重启之后重新跑一次安装程序继续就行。注意安装目录尽量不要选带中文或空格的特殊路径避免后面命令行操作或者配置文件解析出各种莫名其妙的问题。保持默认的C:\Program Files\MySQL\一般没问题。2.3 下载与安装阶段别干等着配置好组件列表后安装器会进入Download阶段把选中的组件下载到本地缓存然后进入Install阶段逐一安装。这一步时长取决于网络速度和组件数量服务器组件较大耐心等一会儿。安装过程中经常需要管理员权限弹窗点“是”就行。组件安装完成后安装器会提示“Configuration Required”提醒接下来需要进行MySQL实例配置。先不要急着完成点击Next进入配置环节这个环节才是安装的重头戏——配置的好坏直接影响数据库能否正常启动和使用。2.4 关键配置环节逐项说明进入配置向导后东西比较多我按顺序一项一项拆开说每项选什么、为什么这么选都给你讲明白。2.4.1 Type and Networking类型与网络第一个界面是配置类型。选项有Development Computer开发机、Server Computer服务器、Dedicated Computer专用数据库服务器区别在于MySQL会根据你的选择来分配内存和系统资源的使用策略。本机开发用选Development Computer即可他会按日常开发需求设置相对适中的资源占用。接着是Connectivity默认勾选TCP/IP端口号3306。如果你想本机的其他程序通过TCP/IP协议连接数据库这里保持勾选。下面的Open Windows Firewall ports for network access建议勾上这样Windows防火墙会自动放行3306端口省得后面局域网内其他机器连不上。如果你只有本机开发需求也可以不勾影响不大。2.4.2 Authentication Method认证方式这步要选择一个认证插件。8.0版本的MySQL提供了两种Use Strong Password Encryption for Authentication使用推荐的新认证机制caching_sha2_password。安全性更高但一些老版本客户端工具可能不支持连接。Use Legacy Authentication使用传统的mysql_native_password认证方式。兼容性好但安全性相对弱一些。我一般建议默认选第一种安全性更好而且Navicat新版本、MySQL Workbench、各类主流编程语言的驱动都已经支持新认证了兼容性问题不大。如果你在用特别老的客户端工具连不上的时候再回来改用Legacy也行。2.4.3 Accounts and Roles账号与角色这一步设置MySQL的root用户密码。root是MySQL的超级管理员账号密码一定要设得够强建议包含大小写字母、数字和特殊字符长度不少于8位。同时这个密码必须牢牢记住忘了密码在Windows上重置还挺折腾的。界面下方还有个MySQL User Accounts的选项可以额外创建普通用户并授权。如果在本地开发和测试暂时不需要额外建用户先只用root就行了。生产环境千万别直接在代码里用root账号平时开发也要养成创建独立账号的习惯。2.4.4 Windows ServiceWindows服务这步配置MySQL是否注册为Windows系统服务。建议勾选Configure MySQL Server as a Windows Service这样MySQL会以后台服务的形式常驻运行不需要手动打开命令行窗口。Windows Service Name服务名默认是MySQL80保持默认就行后面启动、停止服务时要用这个名字。Start the MySQL Server at System Startup是否开机自启开发机建议勾上省得每次开机还要手动启动。Run Windows Service as服务运行账户默认选Standard System Account即可。如果你需要MySQL访问网络共享目录之类的才可能需要考虑改成自定义账户正常场景不用动。2.4.5 Apply Configuration应用配置配置项都填好之后点击Execute按钮安装器会依次应用配置写入my.ini配置文件、初始化数据目录、启动服务、设置root密码等。每一步前面有绿色对勾表示成功后面变红色就说明有环节失败。这一步一般不会有问题除非遇到端口被占用的情况那就是安装前检查没做到位。全部执行成功后点Finish完成配置。再往后会询问是否配置Router个人开发场景直接Cancel掉就行那个是MySQL Router路由组件主要用于读写分离和高可用架构本地单机用不到。2.5 安装完成后的第一眼确认安装完成后先别急着关掉安装器。回到桌面按Win R输入services.msc回车打开服务管理器在列表里找到MySQL80服务确认它的状态是“正在运行”。如果状态是“已停止”右键点击启动即可。也可以在命令行里执行下面的命令来看服务状态net start列表里能看MySQL服务也可以直接运行net start mysql80如果显示“请求的服务已经启动”说明MySQL服务运行正常安装已经成功了一大半。3. 装完之后的配置与连接验证3.1 配置MySQL环境变量命令行随处可用安装完成后每次在命令行想敲mysql -u root -p系统都会提示“不是内部或外部命令”。这是因为MySQL的bin目录没有加入Windows的Path环境变量。把bin目录加进去才能在任意目录下直接使用mysql、mysqldump这些命令行工具。具体操作按Win R输入sysdm.cpl回车打开系统属性切到“高级”选项卡点“环境变量”。在“系统变量”区域找到Path双击打开点“新建”填入MySQL的bin目录。默认安装路径是这个C:\Program Files\MySQL\MySQL Server 8.0\bin确定保存后重新打开一个命令行窗口输入mysql --version能输出形如mysql Ver 8.0.36 for Win64 on x86_64的信息说明环境变量配置成功。这里有注意一下修改环境变量后已经打开的命令行窗口不会自动生效一定要新开窗口。我见过不少人改完直接老窗口里敲命令提示找不到命令还以为自己路径填错了其实只是窗口缓存没刷新。3.2 命令行登录与基础验证环境变量配好后在命令行里执行登录命令mysql -u root -p回车后会提示输入密码输入安装时设置的root密码注意这里输入密码时屏幕上是没有任何显示的这是正常现象别以为是键盘坏了。密码正确就能进入mysql命令行交互模式。先跑几条基本命令验证安装状态SELECT VERSION(); SELECT NOW(); SHOW DATABASES;SELECT VERSION();能看到MySQL版本号SELECT NOW();会返回当前时间说明服务器正常运行SHOW DATABASES;会列出系统自带的数据库至少会有information_schema、mysql、performance_schema和sys这几个这些命令都正常返回说明MySQL已经能正常对外提供数据库服务了。3.3 Workbench图形化界面连一把MySQL Workbench是安装时我们会一并装上的官方图形化工具功能比命令行直观很多。桌面找到MySQL Workbench启动首次打开会有一个Welcome界面能看到一个本地连接通常是Local instance MySQL80点它一下输入root密码就能进入图形化操作界面。进去之后左侧PANELS区域可以看到SCHEMAS列表右键点空白区域选择“Create Schema”就能创建数据库双击某个数据库就能对它建表、写SQL查询。Workbench还自带ER图设计工具和性能监控面板适合日常开发和调试。Workbench连接的本质也是通过TCP/IP协议访问localhost的3306端口所以如果Workbench都连接正常说明MySQL的网络服务也没问题。3.4 用Navicat连接的参数怎么填很多人习惯用Navicat来管理数据库。这里多说一句Navicat是商业软件用的话请支持正版可以下载官方的试用版试用官方也经常有学生优惠和活动别去网上找那些来路不明的所谓激活工具既违反软件许可协议搞到带木马的修改版更是得不偿失。Navicat新建连接时需要填写的参数很简单连接名随意比如“本地MySQL”主机localhost或127.0.0.1端口3306用户名root密码安装时设置的root密码填写后点击“测试连接”能弹出“连接成功”的提示就说明一切正常。如果提示密码错误检查是不是密码录入错误如果提示2002错误检查MySQL服务是否启动如果提示1045错误大概率是认证方式不匹配或密码错误逐项排查就行。4. 安装与使用中的高发问题排查4.1 MSI文件无法安装的几类典型场景MSI安装包问题在Windows上非常常见把几种典型场景的解决办法列成一张表方便直接对照现象原因解决办法双击没反应权限不足或安全软件拦截右键以管理员身份运行临时退出安全软件提示“需要新应用打开此msi”MSI文件关联损坏使用msiexec /i 完整路径命令安装提示“Windows Installer程序包有问题”安装包下载不完整或损坏重新下载完整版MSI提示系统服务Windows Installer未启动Windows Installer服务被禁用服务管理器中启动Windows Installer服务安装过程中断、回滚提示无法写入杀毒软件拦截注册表写入关闭实时防护后重试安装完再开启msiexec这条命令值得记下来后面只要是MSI文件安装出问题都可以用这个命令行安装的方式绕过各种图形化界面的幺蛾子。注意安装MySQL这类系统级软件建议全程断网安装都不必但安全软件建议临时关闭实时防护。别同时开多个安装包装到一半被别的进程干扰容易造成安装回滚。4.2 安装时服务启动失败先查端口占用安装配置环节点击Execute后如果卡在Starting Server这一步报错次数最多就是因为3306端口被占用。常见占用者包括自己手动安装过另一个MySQL实例、WAMP/XAMPP集成环境的MySQL服务、某些Java程序内嵌的MySQL服务、甚至Windows的IIS功能占用了端口。排查步骤打开命令行执行netstat -ano | findstr 3306如果输出最后一列有个进程PID比如12345执行tasklist | findstr 12345看是什么程序如果是无关的进程可以直接在任务管理器中结束它或者用taskkill /PID 12345 /F强制结束。如果这个进程是你需要保留的服务那就回到安装配置的Type and Networking界面把端口改成3307之类的其他端口。还有一种情况之前旧版本的MySQL没卸载干净数据目录和服务注册信息残留导致新版本装不上。这时候要把旧的MySQL彻底卸载见4.4小节再重新安装。4.3 命令行连接报错的分场景排查场景一运行mysql命令提示“不是内部或外部命令”说明环境变量没配置好或者配置后没重新打开命令行窗口。按3.1小节的步骤重新检查Path变量新开一个cmd窗口再试。场景二报错 ERROR 2002 (HY000): Cant connect to local MySQL server through socket这个提示常见于Linux环境但Windows下也会出现本质上就是客户端连不上MySQL服务。排查顺序先看服务有没有启动——net start检查MySQL80服务状态确认服务已经在运行后检查端口——netstat -ano | findstr 3306看是否在监听如果端口正常检查连接时是否指定了错误的端口或主机。场景三报错 ERROR 1045 (28000): Access denied for user rootlocalhost这个几乎可以确定是密码错误或认证方式不匹配。密码错误的话只能在跳过权限认证的模式下重置密码。步骤如下以管理员身份打开命令行停止MySQL服务net stop mysql80以跳过权限表的方式启动MySQL。注意这里要把MySQL的数据目录作为参数传递先在命令行中运行mysqld --skip-grant-tables --shared-memory另外开一个命令行窗口无需密码直接进入MySQLmysql -u root进入mysql库修改密码FLUSH PRIVILEGES; ALTER USER rootlocalhost IDENTIFIED BY 新密码; EXIT;回到命令行Ctrl C停止mysqld进程再正常启动服务net start mysql80再用新密码登录即可。重设密码后建议重启一下电脑确保所有进程干净退出避免残留的mysqld进程一直占用端口。提示--skip-grant-tables是绕过权限验证的应急手段操作期间数据库处于无保护状态只适合本机操作并且操作完务必立刻恢复正常模式。场景四Workbench或Navicat连接提示Authentication plugin caching_sha2_password这个就是认证方式不兼容。要么升级客户端工具到支持caching_sha2_password的版本要么用一条SQL把用户认证方式改回旧版ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的密码;临时用还是建议把工具升级一下毕竟新认证机制更安全也代表MySQL后续的方向。4.4 彻底卸载MySQL再重装如果你折腾了半天MySQL还是各种问题最省心的方案往往是直接清干净重装。卸载分四步走第一在“设置”里找到“应用”或“程序和功能”找到MySQL Installer相关组件和MySQL Server 8.0先点击卸载MySQL Server再卸载MySQL Installer。第二删除安装目录。默认路径下的C:\Program Files\MySQL\和C:\Program Files (x86)\MySQL\全部删掉。第三删除数据目录。MySQL 8.0的数据目录默认在C:\ProgramData\MySQL\这个目录经常被忽略。ProgramData是隐藏目录在文件管理器地址栏直接输入路径就能进入。这个目录不删干净重装后很可能还是带着旧配置老问题。第四清理注册表和计划任务。按Win R输入regedit打开注册表编辑器找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services把以MySQL开头的服务项删掉。删除注册表前务必导出备份删错了系统还容易搞出大问题。重装时回到第2小节从头走一遍流程安装前再次检查3306端口是否被占用基本就能一次搞定。4.5 几个提高日常使用体验的小配置字符集确认MySQL 8.0默认就是utf8mb4字符集支持完整的Unicode包括emoji这类四字节字符。技术面试也经常问这个点装完顺手确认一下省得后面建表出来乱码。跳过密码的干净登录测试环境可以用mysql -u root -p密码直接登录但注意命令行里带密码会留在操作历史里生产环境绝对不要这么干。定期备份本地数据库虽然只是开发用但数据丢了照样想哭。每天定时用mysqldump导出一次SQL文件命令示例mysqldump -u root -p --all-databases D:\backup\mysql_all_%date:~0,4%%date:~5,2%%date:~8,2%.sql配合Windows任务计划程序就能实现每天自动备份。对开发机来说备份一次全库也才几秒钟代价很低收益很高。5. 写在最后的一些实际操作建议回过头来看MySQL在Windows上用MSI安装整个流程其实就几步下载对应版本的MSI安装包、按向导安装组件、配置实例、验证连接。但真正决定顺不顺利的往往是安装前的端口检查和环境依赖这两块做好了后面基本是一路Next的事。我实际帮人排障时反复遇到几个问题环境变量改了没新开窗口、密码里带了特殊字符在命令行被转义、以前装过MySQL没卸干净导致新实例起不来。这些都是不起眼的小细节但每一个都足以把人卡住半小时以上。如果你照着教程一步步做还是失败优先回头检查服务状态、端口占用、路径配置这三个地方。我个人是强烈建议把服务设置为开机自启的开发机整天敲net start mysql80太累而且服务方式运行也符合MySQL在Windows上的标准使用姿势。另一个建议是装完之后立刻用Workbench或Navicat建一个测试数据库随便建一张表插入几行数据再查出来把整个读写链路走通这样后续开发就不会被环境问题反复绊住。最后再分享一个小技巧安装好MySQL后顺手把bin目录里常用的几个命令行工具mysql、mysqldump、mysqladmin在终端里各跑一遍带--help参数的命令既能验证环境变量配置无误又能顺便熟悉一下有哪些常用选项。数据库这东西装好只是开始用得顺手才是目的。
返回列表