ARTICLE DETAIL

资讯详情

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

Windows安装MySQL 8.0完整教程:从下载到常见排错

Windows安装MySQL 8.0完整教程:从下载到常见排错 1. 写在前面为什么Windows装MySQL 8.0是个正经事先说实话MySQL 8.0在Windows上的安装本质上不难但踩坑的人是真多。我见过不少同学卡在初始化报错、服务起不来、密码不对这些环节来回折腾几个小时最后来问我我才发现都是些很基础的细节问题。这篇博文就把整个安装流程从下载到验证、再到常见排错完整过一遍。标题里的核心关键词就三个win、mysql8.0、安装教程。文章会覆盖msi安装器方式和zip免安装方式两种路子你按自己的习惯选一种就行。适合刚接触数据库的初学者也适合需要快速在本地Windows环境部署MySQL的开发者。我自己在Windows上装MySQL 8.0的次数可能有几十次了包括不同版本的Windows、不同场景的部署说句实在话零散教程看了很多但真正好用的还是自己整理出来的这套流程。下面开始正题。2. 安装前的关键准备选择安装方式与下载正确的安装包2.1 为什么现在都推荐MySQL 8.0MySQL 8.0发布已经好几年了到现在已经非常稳定官方也在持续维护更新小版本。相比之前的5.7它在性能、功能和安全方面都有明显提升其中几个值得注意的变化包括默认字符集从latin1改成了utf8mb4对中文等字符的支持更友好。引入窗口函数window functions和公共表表达式CTE写复杂SQL时方便很多。新增caching_sha2_password默认认证插件安全性比5.7时代的mysql_native_password强不少。基于查询优化器的改进对复杂查询的执行效率有明显提升。支持原子DDL语句在修改表结构时不容易出现中途失败导致的半成品状态。你可以这样理解MySQL 8.0就像从一个老厂房升级成了现代化车间原来的机器还能用但新的工具链已经换代了。如果你刚开始学或者新项目建库直接用8.0就是正确选择不用纠结。如果非要提一句5.7那就是有些非常老的业务系统或者特定的ODBC驱动不兼容8.0的默认认证方式需要额外配置。但这是少数场景对绝大多数新部署8.0就是正确答案。2.2 安装包选MSI还是ZIP在Windows上装MySQL 8.0主要有两种方式MSI安装器和ZIP免安装压缩包。这两者的选择取决于你的使用习惯。第一次接触MySQL的用户或者不太熟悉配置文件的用户优先选MSI。它就类似普通Windows软件的安装向导点击下一步就能完成大部分配置。如果你需要灵活控制安装路径、数据目录或者希望方便地在多台机器上复制同样的部署结构ZIP包更适合你。MSI方式有一个好处就是它自动帮你完成注册Windows服务、创建配置文件、配置环境变量等操作对新手来说省心很多。缺点就是安装向导的选项比较多每一步都要看清再点。ZIP方式灵活性很强比如企业内网部署、批量机器统一安装用ZIP解压加初始化命令的方式可复现性更好配置文件还能版本管理。对了如果你的电脑里装了Docker也可以考虑直接跑官方镜像但这不是本篇的重点后面的常见问题里我再简单补充。2.3 下载安装包时的几个坑下载MySQL 8.0安装包建议去官方下载页https://dev.mysql.com/downloads/mysql/。页面会显示最新版本号比如8.0.x系列。下载时注意几个细节第一个坑是选错操作系统。下载页面默认可能显示的是Linux版本一定要在Select Operating System里选择Microsoft Windows然后下面会弹出安装包选项。第二个坑是选错安装包类型。Windows平台一般有这几个文件mysql-installer-community-x.x.x.msi图形化安装器包含MySQL Server、客户端工具、连接器、示例等组件选择功能。mysql-x.x.x-winx64.zip64位免安装压缩包。mysql-x.x.x-winx32.zip32位免安装压缩包现在已经很少见了。如果你只想装数据库服务本身不想要插件全家桶直接下载zip包或者选msi的Server only组件都可以。注意下载页面还有个No thanks, just start my download按钮不要在镜像注册页浪费时间。第三个坑是版本号选错。不要下载带rc标识的版本那个是候选版本不够稳定。要下就下GA版本也就是官方标注的稳定版。下载完成后最好顺手校验一下文件完整性。官方提供SHA-256校验值你在下载页面旁边能看到对应的checksum用PowerShell的Get-FileHash命令就能校验防止下载过程中文件损坏。3. MSI安装器方式全流程从头到尾一步步实操3.1 运行安装程序与选择安装类型双击运行下载好的msi文件安装程序启动后会先加载配置可能要等一会儿耐心等待即可。第一个界面是Choosing a Setup Type一般有这几个选项Developer Default安装开发所需的全部组件包括Server、Shell、Workbench、Router等。Server only只安装MySQL服务器本身。Custom手动勾选需要的组件。Full全量安装。我个人建议如果你主要是学习和开发选Developer Default没问题里面自带的MySQL Workbench就是官方图形化管理工具写SQL和看数据都很方便省得再单独下载客户端工具。如果你是生产环境或者电脑配置不大好选Server only即可MySQL服务本身就是核心可视化工具可以后续按需装。这里有个细节安装向导可能会提示缺少Python或相关依赖比如安装Workbench时需要Visual C运行库如果电脑上没装向导会自动联网下载。我建议安装前提前装好Microsoft Visual C 2015-2022 Redistributable避免安装过程中被卡住。3.2 配置MySQL服务的关键步骤与参数选择安装组件之后进入MySQL服务配置阶段。这个阶段有几个关键点决定了安装完成后能不能顺利使用。第一个是High Availability选项默认选Standalone MySQL Server / Classic MySQL Replication即可。那些组复制相关的选项除非你要搭集群否则不需要选。第二个是Type and Networking默认配置基本够用。端口号默认是3306如果你的电脑上已经装了别的MySQL实例或者其他软件占用了3306端口就得改一个比如3307或者3308。对新手来说端口这块最容易忽略后面连不上服务的时候往往跟端口有关。第三个是Authentication Method这个非常重要。默认选项是Use Strong Password Encryption for Authentication (RECOMMENDED)也就是使用caching_sha2_password认证插件。建议保持默认。什么是认证插件一句话说它就是数据库在登录时验证你密码的方式。如果选了第二个选项Use Legacy Authentication那是在兼容老客户端的场景下才需要的。第四个是设置root密码和账号信息。root是MySQL的超级管理员账号密码一定要设置好最好用大小写字母加数字组合的形式。还要注意8.0默认的密码策略要求密码长度至少8位如果设置太短会不通过。在这个界面还可以额外创建账户一般不需要用root就够。第五个是Windows Service配置。安装向导会问你Configure MySQL Server as a Windows Service这里建议勾选然后设置服务名称默认是MySQL80。启动类型选Start at System Boot这样Windows开机后MySQL服务会自动启动不用每次手动启动。勾选Standard System Account即可不需要用专门的windows系统账户来运行服务默认配置就能很好工作。配置完成后向导会生成一份配置汇总直接确认即可。接着是安装和配置的过程进度条大概几分钟到十几分钟不等取决于机器性能。最后提示Installation Complete就说明整个安装成功了。3.3 验证安装是否成功安装完成后怎么验证是否真的装成功了打开命令提示符cmd或者PowerShell输入mysql --version如果看到类似mysql Ver 8.0.x for Win64 on x86_64的输出说明命令行客户端已经可用。如果提示mysql不是内部或外部命令说明环境变量没配置好后面有专门讲解。然后测试连接数据库mysql -u root -p输入刚才设置的root密码如果出现Welcome to the MySQL monitor的提示就说明数据库服务正常运行可以使用了。如果提示密码错误或者登录被拒绝那就要排查密码策略和认证插件的问题。4. ZIP免安装方式全流程适合掌控型用户4.1 下载与解压手动配置my.ini文件ZIP方式说白了就是解压即用但要自己动手做几件事。首先把下载好的zip包解压比如解压到D:\mysql-8.0.x-winx64。注意路径中最好不要带中文和空格否则后续有些工具连接时可能出问题。解压之后在mysql根目录下新建一个文本文件命名为my.ini这是MySQL的配置文件。下面给出一份经过反复验证可用的最小配置[mysqld] # 设置端口号 port3306 # 安装目录改成你自己的实际路径 basedirD:/mysql-8.0.x-winx64 # 数据目录存放数据库文件 datadirD:/mysql-8.0.x-winx64/data # 默认字符集 character-set-serverutf8mb4 # 默认存储引擎 default-storage-engineINNODB # 最大连接数 max_connections100 # 默认认证插件 default_authentication_plugincaching_sha2_password这里有个非常重要的点datadir指向的目录也就是data目录不需要提前手动创建。如果手动创建了可能会导致初始化失败这个我在常见问题部分会专门说。正确的做法是让MySQL初始化时自己创建data目录。还有一点配置文件中basedir和datadir路径的写法正反斜杠都行但建议用正斜杠少一些转义问题。4.2 初始化、安装服务与启动MySQL配置文件准备好后打开命令提示符并切换到MySQL的bin目录cd /d D:\mysql-8.0.x-winx64\bin然后执行初始化命令。这步会生成一个默认的root账号且初始密码为空mysqld --initialize-insecure如果你想生成一个随机密码可以去掉-insecure后缀直接执行mysqld --initialize这样初始化完成后会把临时密码写进日志文件。对新手来说建议用--initialize-insecure因为不需要去日志里翻密码初始化后直接就能以root免密登录。初始化成功后bin目录下进行安装Windows服务的操作mysqld --install如果显示Service successfully installed说明MySQL服务注册成功。想自定义服务名可以写成mysqld --install MySQL80然后启动服务net start mysql启动成功后就能用root直接登录了mysql -u root因为初始密码是空的所以不需要-p参数。进入MySQL后第一件事是设置root密码比如设置成MyPassword123ALTER USER rootlocalhost IDENTIFIED BY MyPassword123;执行成功后退出再重新登录时就用新密码了。4.3 自动启动设置与彻底卸载方法ZIP方式安装的MySQL可以用Windows服务来管理已经在上一步完成了。服务设成了自动启动吗默认情况下mysqld --install注册的服务启动类型是自动但保险起见可以检查一下sc query mysql查看START_TYPE如果不是AUTO_START可以用如下命令修改sc config mysql start auto注意等号后面有个空格。如果有人一路装下来觉得不行想卸载干净这里也补充一个彻底卸载的流程。先停止服务net stop mysql删除Windows服务sc delete mysql然后删除整个mysql安装目录最后清理一下注册表或者临时目录就没有什么残留了。这里提一句很多人在Windows上装了MySQL后来出问题其实不是软件的问题而是服务没有停干净就卸载导致残留冲突。5. 安装后的关键配置环境变量、远程访问与常用工具5.1 配置PATH环境变量让mysql命令随处可用安装完成之后你会发现直接在任意终端输入mysql命令时提示找不到原因就是没有配置环境变量。配置方法很简单。在Windows搜索栏输入“环境变量”打开编辑系统环境变量点击环境变量按钮。在系统变量列表中找到Path双击它然后点击新建填入MySQL的bin目录路径比如D:\mysql-8.0.x-winx64\bin。注意如果用MSI方式安装装好后默认路径一般是C:\Program Files\MySQL\MySQL Server 8.0\bin把这条路径加进去就行。配置完成后重新打开一个cmd或者PowerShell窗口再输入mysql --version就能看到版本信息了。为什么要重新打开因为环境变量的读取发生在终端启动时已经打开的终端不会自动加载最新配置。实际上很多人在配置Python环境变量的时候也有这个困惑道理一模一样改完环境变量新开的终端才能生效。5.2 开放远程访问权限默认情况下MySQL只允许本机访问也就是localhost。如果你在开发时需要让其他机器连你的数据库就需要配置远程访问。先以root登录mysql -u root -p然后创建一个专门用于远程连接的用户并授权CREATE USER remote_user% IDENTIFIED BY RemotePassword123; GRANT ALL PRIVILEGES ON *.* TO remote_user% WITH GRANT OPTION; FLUSH PRIVILEGES;这里的%表示任意主机都可以连接。如果只想让某个固定IP访问可以把%替换成具体IP比如192.168.1.100更安全。另外要注意Windows防火墙默认会拦截外部对3306端口的访问。所以远程连接不上时八成是防火墙没放行。需要在防火墙高级设置中添加入站规则开放3306端口或者启动服务时允许程序通过防火墙。这里有个安全提醒在生产环境中开放远程数据库访问一定要谨慎建议限定IP范围同时不要用root远程登录单独建权限最小的账号。5.3 图形化工具与ODBC驱动MySQL装好之后除了命令行图形化工具也很有用。官方的是MySQL Workbench前面MSI方式安装时选Developer Default就会带上。如果你用的是ZIP方式可以单独下载Workbench安装。另外日常开发中很多语言或工具需要通过ODBC方式连接MySQL比如Excel、PowerBI、一些BI系统。这时需要安装MySQL ODBC Driver。下载时注意版本8.0版本的ODBC驱动支持MySQL 8.0的caching_sha2_password认证而老版本的ODBC驱动可能连接报错提示认证插件不兼容。这算是一个很常见的坑。如果你的电脑缺Visual C运行库ODBC驱动安装时可能会有问题所以建议先把Microsoft Visual C 2015-2022 Redistributable装好。6. 常见安装错误速查表与排查技巧这里整理的几个问题都是我实际安装和帮别人排查过程中遇到最多的情况按出现频率排序。错误现象根本原因解决办法mysql不是内部或外部命令环境变量没配置手动添加bin目录到PathCant connect to MySQL server且显示10061服务没启动执行net start mysqlAccess denied for user rootroot密码错误或者用错了认证方式检查密码使用--initialize-insecure后重新设置密码初始化报错data directory问题data目录已存在或权限不对删除data目录内容重新执行初始化命令卸载后重装失败服务没有删除干净或端口占用用sc delete mysql用netstat -ano查找3306端口占用进程远程连接被拒绝防火墙或未授权远程用户开放3306端口建远程用户并授予权限客户端工具报告认证插件不支持老客户端不能处理caching_sha2_password修改用户认证方式或者升级客户端版本6.1 最容易被忽略的初始化失败问题ZIP方式安装时最容易出问题的就是初始化。常见报错是提示[ERROR] --initialize specified but the data directory has existing files意思是你手动创建了data目录导致初始化被中止。解决办法很简单把data目录下所有文件清空或者直接删除data目录然后重新执行mysqld --initialize-insecure注意如果你在执行时用的是普通权限的cmd可能会遇到无法写入data目录的问题。解决办法是右键选择“以管理员身份运行”cmd尤其是后续执行mysqld --install注册服务这步管理员权限是必须的。另外如果你机器上有多个MySQL版本的共存场景比如想保留5.7又装8.0端口和data目录都必须分开服务名也得重新自定义否则后装的会把先装的覆盖掉。6.2 端口占用与防火墙问题端口被占用是Windows上装MySQL的另一个高频问题。怎么判断3306端口是否被占用用如下命令netstat -ano | findstr :3306如果看到有进程监听3306端口可以查一下是什么进程占用的tasklist | findstr 进程号如果是个不认识的进程比如之前装过的MySQL服务或者某些恶意软件占用就需要处理。要么改端口要么停掉占用进程。防火墙的情况前面提到过远程连接时尤其要注意。开放3306端口的安全操作是控制面板 - Windows Defender防火墙 - 高级设置 - 入站规则 - 新建规则 - 端口 - TCP - 3306 - 允许连接。弄完记得确认规则处于启用状态。6.3 卸载不干净的后续影响Windows平台上很多软件的卸载问题都有共性MySQL也不例外。如果卸载时用控制面板的程序卸载或者直接删除安装目录而没有先删除服务那就可能留下一个无效的系统服务记录。下次再装MySQL时可能导致服务名冲突。彻底卸载的正确顺序是net stop mysql sc delete mysql然后把安装目录整个删除如果还有残留的C:\ProgramData\MySQL目录也一并删除。ProgramData目录下的MySQL文件夹里存有配置和初始化数据不删干净就会导致重装时出现各种诡异问题。我见过有人拿“还原系统备份”来清理这些残留虽然也是一种方法但数据库文件在还原点之外的新数据可能丢失不建议通过这种方式来解决问题。7. 一些个人经验与补充建议聊到这儿核心安装流程已经完整走了一遍。最后分享一点我自己的经验。第一MySQL 8.0在Windows上跑得很稳但如果你的业务场景是超高并发或复杂的分布式事务Windows环境可能不是最优选择建议考虑Linux部署或者容器化方式。一般来说开发学习用Windows绰绰有余。第二如果你看到网上有人推荐用docker安装MySQL 8.0在开发机上其实也是可行思路。官方镜像mysql:8.0直接运行起来配合数据卷挂载本地目录优点是环境干净不会像Windows原生安装那样在系统里留下各种服务残留。缺点是对Windows文件系统性能有损耗端口映射和文件权限问题也偶尔出现。各有取舍根据自己情况选择就好。第三密码策略这块MySQL 8.0默认的密码校验规则是validate_password插件在管要求密码至少8位且包含大小写字母和数字。如果你设密码时遇到Your password does not satisfy the current policy requirements不用怀疑自己密码改复杂点就行。最后再分享一个小习惯每次装完MySQL我都会把安装版本号、配置文件内容、root密码写在本地密码管理器里。这样以后电脑换机或者出问题需要重新部署时直接翻记录就能恢复不用靠记忆去想当初到底配了什么参数。好了教程到这里就结束了。如果你按照上面的流程操作还遇到问题多半是某一个具体环节的细节问题回头对照第六节排查表逐条检查基本都能解决。祝安装顺利。
返回列表