首页 / 资讯中心 / 文章详情

MySQL 8 下载安装与配置避坑指南:从官方源到服务启动全程详解

MySQL 8 下载安装与配置避坑指南:从官方源到服务启动全程详解 ★ FEATURED ARTICLE
1. 下载前的思路准备先想清楚你要装哪个版本做这行这么多年最怕看到两种情况一种是新同学上来就点“Download”按钮装完才发现装了个根本没有长期支持的版本另一种是还在用5.x的一堆老配置教程结果装MySQL 8的时候照猫画虎最后连服务都起不来。所以这篇我就从头捋一遍直接把MySQL 8的下载安装路径走完整。MySQL 8这个版本从2018年GAGeneral Availability到现在已经非常成熟了。跟5.7比它的默认字符集换成了utf8mb4原生支持窗口函数和CTE公用表表达式还有数据字典重构、隐藏索引、降序索引这些实打实的东西。更重要的是8.0.x官方会持续维护更新到长期支持生命周期结束你下载安装时直接选8.0系列的大版本不要选那些奇怪的像8.4之类的创新版本后缀。教程里说的“MySQL8”指的就是官方命名的“MySQL Community Server 8.0.xx”这种带小版本号的发行版。适合谁看呢首先是刚接触数据库的小白想在自己的Windows电脑上装一个本地MySQL环境用来练习SQL或者做课程设计其次是做开发的朋友需要在本地起一个和线上环境大版本一致的数据库方便调试还有一些运维同学帮别人排查安装问题之前自己得先把这套流程走通。后续我会把下载链接入口、每一步点击路径、每个配置项的含义以及装完以后的验证方式全都写清楚。2. 下载环节拆解官方网站应该怎么逛2.1 官方下载入口和镜像站怎么选搜索“MySQL8下载”出来的结果前几页基本都是官方域名mysql.com或者dev.mysql.com这没问题认准官方地址就行。但有些朋友说“官网下载太慢了几十兆的文件卡半天”那就要用国内镜像。用镜像的前提是镜像源必须同步官方发行版并且校验码要和官方一致。常见的稳定镜像有阿里云镜像站、清华大学开源镜像站路径一般是mysql/downloads/MySQL-8.0/或者mysql-8.0.xx-winx64.zip这类目录。有一点要注意某些私人搭的下载站会把安装包打包进一堆推广软件装MySQL给你带个全家桶这种坑我实在见得太多宁可在镜像站多等几秒也别去那种站点下载。从官网下载的路径是这样打开 dev.mysql.com/downloads/installer/能看到两个大入口Windows (x86, 32-bit), MSI InstallerWindows (x86, 64-bit), MSI Installer往下的“MySQL Installer”这个东西是把服务器、客户端工具、文档、样例库全部集中在一个安装向导里。第一次接触的人可能会被它的组件选择搞晕所以我给个建议如果你只是想装一个MySQL Server方便命令行或客户端连接就选那个体积较小的MySQL Installer Community里的“Server only”模式装完基本够用如果你是想在开发时顺手用自带的Workbench图形工具、MySQL Shell之类的那就在组件列表里勾上。2.2 社区版和商业版的区分选择官网的下载首页喜欢放一个很显眼的大按钮叫“MySQL Installer for Windows”点进去以后还有一个“Windows (x86, 32-bit), MSI Installer / Windows (x86, 64-bit), MSI Installer”的选择。这里注意一下业界常说的“MySQL8免费版”指的是MySQL Community Server全名叫“MySQL Community Edition”。它和商业版“MySQL Enterprise Edition”的区别主要在插件、监控、备份工具、技术支持这些增值部分核心的InnoDB引擎、SQL语法、复制能力都是一样的。所以你不要在下载页被“Commercial”“Enterprise”这些标识带偏认准“Community”字样的下载链接就行。安装包文件名格式通常是mysql-installer-community-8.0.xx.0.msi或者压缩包mysql-8.0.xx-winx64.zip。前者是可视化安装向导适合新手后者是免安装zip版适合喜欢手动控制的人。我这个教程主要走MSI安装向导路线zip的配置方法我也会在后文里带一句。2.3 我推荐选的下载版本参数下载时如果你点“Go to Download Page”页面会列出一堆具体版本号和平台文件。以8.0.xx为例常见的有文件类型文件名示意使用场景MSI安装包建议mysql-installer-community-8.0.36.0.msi带图形向导装完自带配置工具ZIP免安装包mysql-8.0.36-winx64.zip手动配置适合优雅洁癖和自动化脚本调试符号包mysql-8.0.36-winx64-debug-test.zip开发调试用普通用户不需要MSI文件通常有300多MBZIP压缩包也在200MB左右这是正常的因为里面包含了Server、客户端、共享库等等一堆组件。你下载的时候注意看版本号后面有没有“RC”“DMR”这种字样那代表发布候选版或开发里程碑版不建议生产环境或者初学安装用等GA的正式版就好。3. 安装全程拆解每一步到底在弹什么窗口3.1 安装模式选择完整安装还是自定义双击MSI文件以后安装程序会先做一个系统检查。这个检查主要看你机器上有没有装Visual C Redistributable之类的运行库因为MySQL 8的Server组件依赖它。如果检查结果显示某项缺失一般安装包会装在过程中自动帮你补上实在缺的话就去微软官网下载对应的VC运行库别跳过。接着会进入安装类型选择界面一般有这几个选项Developer Default会安装Server、Shell、Router、Workbench、样例等一整套适合要做完整开发的人但装完体积大启动项多。Server only只装服务器核心最干净适合只需要一个数据库服务的学习和测试场景。Custom手动勾选需要的组件后续可随时增减。我推荐新手选Server only。原因很简单第一Workbench这类图形工具后续随时可补装没必要刚开始就把一堆东西都堆上去第二组件越多出问题的排查面越大尤其是Router、Connector/Python这类可能跟系统已有环境冲突的东西。如果你实在需要图形化操作界面装完Server后再单独安装MySQL Workbench即可。3.2 安装进度、版本升级和典型坑点选完模式后安装程序会先“Check Requirements”检测缺少的依赖项。这里有个坑很多人电脑上的微软运行库版本比较乱安装包会提示需要“Microsoft Visual C 2019 Redistributable”或更高版本。遇到这种情况别纠结去下载最新的x64版运行库安装重启再回来继续。依赖检查通过后会进入“Installation”界面直接点“Execute”然后就是等进度条。MSI安装器会把所有选中的组件按顺序装到C:\Program Files\MySQL\目录下。这一步有几个常见现象进度条卡在某个组件上长时间不动多半是运行库冲突或权限不够右键MSI文件“以管理员身份运行”即可。提示“A Windows service with the name MySQL already exists.”说明你之前的MySQL卸载不干净下文第5节会给处理方案。安装到末尾提示回滚然后日志里出现“failed to start service”通常是3306端口已经被占用了或者本地没有Administrator权限执行服务安装。如果一切顺利安装向导会自动进入“Product Configuration”环节也就是配置MySQL Server的实例了这是整个安装过程最容易出错的地方。3.3 配置MySQL Server类型、端口、认证方式在安装器进入“Type and Networking”界面时你会看到几个关键选项。Config TypeDevelopment Machine开发机占用内存默认较小官方建议。Server Machine服务器类用途会使用更多内存。Dedicated Machine专门作为数据库服务器的机器会尽量利用现有内存。个人电脑选Development Machine即可这个选项影响的是MySQL使用的内存占用量和InnoDB缓冲池大小不是有没有某项功能。Connectivity默认端口是3306除非你确定这个端口被占用否则不要乱改。改了端口后续所有连接命令和客户端连接串都要跟着改凭空增加麻烦。“X Protocol”端口是33060这是MySQL 8里用来支持X DevAPI的如果你用不到文档型操作可以不管它但默认勾选的选项最好不要手动去取消免得后续连接Workbench时找不到服务。Authentication Method 这一步是MySQL 8和老版本最大的区别之一。MySQL 8默认的认证插件是caching_sha2_password而不是5.x时代的mysql_native_password。弹出的内容一般有两种选择Use Strong Password Encryption (RECOMMENDED)对应caching_sha2_password安全性更高。Use Legacy Authentication对应mysql_native_password给老客户端兼容用的。如果你用的是新版Navicat、DataGrip、mysql命令行客户端选第一个推荐选项完全没问题如果你手头有一个很老的程序用的还是老旧的数据库驱动版本比如PHP 5.x时代的mysqlnd连不上时才需要考虑选第二个。但一般情况下我不建议一上来就选Legacy因为MySQL官方在8.0.34之后已经开始标记mysql_native_password为废弃插件新装环境走强加密才是长久之计。3.4 密码设置和Windows服务配置接下来是“Accounts and Roles”界面这里要设置root 用户的密码。还没进入系统前root是唯一的超级管理员账号密码强度建议是混合大小写字母加数字加符号长度不少于8位。密码忘了会很麻烦重置过程涉及跳过授权表、重启服务等操作所以最好是记在密码管理工具里别只存在脑子里。同页面还能添加其他用户比如新建一个普通账号dev用来日常连库这样root密码就可以放心锁起来。配置服务时注意“Windows Service”选项里服务名称默认叫MySQL80这个名字后面启动、停止、卸载服务都会用到。“Start MySQL Server at System Startup”建议勾上免得重启电脑后还要手动开启服务。“Standard System Account”是默认选项走Windows系统账户运行服务不要随意改成自己改密码的账户否则系统密码换了MySQL服务就起不来了。设置完这些点“Execute”安装程序会开始应用配置。配置完通常还会让你选择是否启用“MySQL Router”之类的组件这个不需要就直接略过。随后安装器宣布完成Stage结束就能看到“Finish”按钮了。到这里可视化安装的流程就走完了。4. 装完后的初始化验证与环境变量配置4.1 服务启动和命令行连接的正确姿势装完先别急着打开各种图形工具先把服务确认起来。按Win R输入services.msc在服务列表里找到MySQL80看状态是否是“正在运行”。如果状态是空白右键手动“启动”启动失败的话去看Windows事件查看器里的应用程序日志具体原因多半是权限或配置文件写坏了。服务正常后打开命令行验证是否真的能连上。MySQL 8安装完后在C:\Program Files\MySQL\MySQL Server 8.0\bin目录下有mysql.exe最稳妥的方法是先切到这个目录再执行mysql -uroot -p输入密码后如果看到Welcome to the MySQL monitor.的提示符说明安装成功。如果你装的时候选了“密文强加密”命令行登录后可能提示需要重置密码策略但这不影响登录验证。平时频繁使用mysql命令的话建议把MySQL的bin目录加到系统环境变量Path里。步骤是右键“此电脑” → 属性 → 高级系统设置 → 环境变量 → 在“Path”里新建一条填入C:\Program Files\MySQL\MySQL Server 8.0\bin然后新开一个命令行窗口就能直接敲mysql -uroot -p了。不配置环境变量也不影响安装本身只是每次都要带全路径略烦。4.2 查询版本和关键参数确认装的确实是MySQL 8登录成功后再执行几个命令确认版本SELECT VERSION(); SHOW VARIABLES LIKE port; SHOW VARIABLES LIKE character_set_server;SELECT VERSION()如果显示8.0.xx就说明当前就是MySQL 8。端口变量一般显示3306字符集会看到utf8mb4这也是MySQL 8默认的。顺手看一下引擎状态SHOW ENGINES;能看到InnoDB的Support列是DEFAULT说明默认存储引擎没问题。如果这些结果都对那整条安装链路就是通的。4.3 ZIP免安装版的配置要点手动党必看这里额外讲一下ZIP版。如果你下载的是mysql-8.0.xx-winx64.zip解压以后目录里只有一个精简的bin目录和一堆文档没有安装向导需要手动做三步第一在解压目录下新建一个my.ini配置文件典型内容[mysqld] basedirC:/mysql-8.0.36-winx64 datadirC:/mysql-8.0.36-winx64/data port3306 character-set-serverutf8mb4 default-authentication-plugincaching_sha2_password我记得以前5.7时代很多人写default_authentication_plugin但MySQL 8里有些版本用下划线写法已经提示废弃统一用横线写法最省事。第二以管理员身份打开命令行切换到bin目录执行初始化命令mysqld --initialize-insecure注意我推荐用--initialize-insecure它会创建一个root空密码账号方便登录而mysqld --initialize会随机生成一个极其复杂的临时密码写在日志文件里新手找半天都找不到。第三注册Windows服务mysqld --install MySQL80 --defaults-fileC:/mysql-8.0.36-winx64/my.ini net start MySQL80ZIP版的好处是目录可以放在任何盘符迁移和备份非常方便坏处是配置文件写错一点服务就启不动对新手门槛略高。所以能用MSI向导就别折腾ZIP。5. 常见安装问题排查与避坑手册5.1 无法安装服务已存在或卸载残留卸载MySQL或者说重装时最常遇到的问题是“The service MySQL80 already exists.” 这通常是因为之前装过的服务没删干净。解决方法是管理员身份打开命令提示符执行sc delete MySQL80然后检查C:\Program Files\MySQL目录是否还残留文件有的话手动删除。还要检查注册表中是否残留regedit路径在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL80如果存在就删除这个项然后再重新安装。这一步操作有一定风险删之前先看一眼确认是MySQL的服务项别误删其他东西。5.2 安装后服务无法启动服务能装上但启动秒失败十有八九是配置或权限问题。先看错误日志Windows事件查看器 → Windows日志 → 应用程序找到Source为MySQL的错误信息。常见两种情况[ERROR] [MY-010123] Cant create test file说明datadir指向的目录没有写权限。检查my.ini中datadir对应的文件夹是否给了当前服务账户读写权限。MSI安装会默认处理好ZIP手写配置时极易出现。[ERROR] [MY-013276] Failed to initialize DD storage engine大概率是data目录里的旧文件残留和当前初始化信息不一致。把data目录内容清空先备份重新执行初始化命令即可。还有一种常见误导启动时提示端口被占用。在命令行执行netstat -ano | findstr :3306查到占用进程的PID后到任务管理器核实这个进程是什么如果不是必要服务可以停掉它或者改MySQL端口到3307避免冲突。5.3 客户端连接报错认证插件问题装完MySQL 8通过Navicat或老版本的图形工具连接时可能报这种错误Authentication plugin caching_sha2_password cannot be loaded或者驱动里报“Public Key Retrieval is not allowed”。原因是MySQL 8默认使用caching_sha2_password但老客户端不支持。处理办法有两个方案一更新客户端工具。Navicat 16、DataGrip、MySQL Workbench近三年版本基本都兼容。方案二如果必须用老客户端可以把某个用户改回传统认证插件ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的密码; FLUSH PRIVILEGES;但我想强调一点不要把整个系统改回Legacy认证尤其在生产环境安全性和官方支持动态都要保证。只针对个别用户降级是妥协且可行的其他账号保持强加密。5.4 输入的密码总是报错密码策略和默认密码初始化后第一次登录报Access denied for user rootlocalhost不用急着怀疑密码写错。大多数情况是MSI安装时你设置了密码但密码还没生效需要重新执行一次安装配置。回到MySQL Installer选择“Reconfigure”重新配置实例。或者你用的是ZIP版mysqld --initialize-insecure初始化的root密码为空那么命令行连的时候直接不输入密码回车即可。MySQL 8默认密码策略是validate_password插件控制的强度要求中等级别密码小于8位直接给你红叉。想临时降低策略可以登录后执行SET GLOBAL validate_password.policy LOW;但这也是改配置的一种建议还是老老实实用合规强度的密码。5.5 中文乱码和时区相关的坑登录后建表插入中文变成问号十有八九是字符集问题。MySQL 8虽然默认服务器字符集是utf8mb4但建库建表时如果不显式指定有的客户端连接时会把连接字符集改成latin1导致写入时报错或乱码。解决办法是在连接串里加上?characterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai或者MySQL命令行登录后执行SET NAMES utf8mb4;时区那块MySQL 8默认时区是SYSTEM如果你连接的Java应用报时区异常在连接串上显式指定serverTimezoneAsia/Shanghai就行不用去改全局时区变量。6. 安装完成后的环境加固和日常维护建议6.1 调整密码强度和创建专用账号装好以后别急着拿root账号到处连。root是管理员日常开发应该用一个权限较小的专用账号。创建账号并授权的方式CREATE USER devlocalhost IDENTIFIED BY Dev_123456; GRANT ALL PRIVILEGES ON mydb.* TO devlocalhost; FLUSH PRIVILEGES;这样即使账号泄露影响范围也限制在mydb这个库。同时可以检查一下当前有哪些用户SELECT user, host FROM mysql.user;发现异常账号及时删掉。6.2 备份、日志和防火墙MySQL 8的备份常用mysqldump比如mysqldump -uroot -p --single-transaction --default-character-setutf8mb4 mydb mydb_backup.sql这个命令在Windows下也能直接用。另外如果你的Windows防火墙开了3306端口默认是会被拦截的本地连接不受影响如果需要局域网内其他机器连接这个MySQL就要在防火墙里放行3306端口。放行前先确认你的MySQL服务确实需要对外暴露不要无缘无故把数据库端口暴露到外网安全方面省不得。6.3 升级小版本和卸载残留清理MySQL 8.0的后续小版本升级很简单下载新一版的MSI安装包双击后选择“Upgrade”安装器会保留原有数据目录升级Server程序。升级前先备份数据和配置文件这步是铁律。ZIP版的升级稍微麻烦替换bin目录后可能还要手动执行mysql_upgrade -uroot -p来确保系统表和字典跟新版本匹配。8.0.x版本的升级工具其实在很多场景已经自动化但手动检查一遍更稳妥。卸载时如果以后还想装回来记住用MySQL Installer里的“Remove”卸载而不是简单删除目录。卸载完成后再把安装目录、数据目录一般在C:\ProgramData\MySQL和MySQL服务注册信息清理掉才能做到干净环境重装。7. 我的实操体会装数据库这件事慢就是快装完一遍MySQL 8以后你可能会觉得大部分时间都花在等待下载和查看配置项上真正“安装”动作本身没几下。我的感受是每个选项背后都有对应的场景理解了场景再点按钮比拿来一个一键脚本敲下去要靠谱得多。比如认证插件那个选择很多人觉得“选推荐项”就好了但如果你的工作内容是被逼用Navicat 11这种老古董你就得多折腾半小时。另外一个小技巧下载安装包的时候顺手把版本号和安装日期记在桌面或者笔记里比如mysql-8.0.36-today。因为几个月后你可能会遇到一个线上环境需要复现本地相同的数据库版本那时候你不会记得自己装的是哪一个小版本。把这类信息记录下来以后排查问题能省很多时间。MySQL 8的安装流程到这里基本就走完了官网下载MSI安装配置实例验证服务排查问题加固使用习惯。每一步看着简单但真上手时上下文很多能静下心一步步看清楚选项含义的人装出来的实例通常就是最稳的。最后分享一个小经验不要在下午犯困的时候配置数据库密码我见过太多人把密码设成了一摸一样的系统用户名或123456然后一天之内就被扫描爆破。密码这关认真一点。
阅读完成 · 觉得有帮助?
咨询建站