ARTICLE DETAIL

资讯详情

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

MySQL 8.0.27保姆级安装教程:从下载到排错,Windows环境全流程详解

MySQL 8.0.27保姆级安装教程:从下载到排错,Windows环境全流程详解 很多同学在群里问我MySQL到底怎么装才能不翻车。说实话MySQL 8.0.27这个版本在安装上已经比早期版本人性化不少但网上教程经常只讲到“下一步下一步”版本还停留在5.7的老流程照着做很容易踩坑。我最近正好在一台全新的Windows机器上完整走了一遍8.0.27的安装流程顺手把每一步的来龙去脉记了下来。这篇保姆级教程会从下载、安装、配置、验证一直讲到常见报错排查适合刚接触数据库的新手也适合之前用5.7、现在打算升到8.0的老手参考。1. 安装前的准备版本选择与安装包下载1.1 为什么推荐安装MySQL 8.0.27这个版本MySQL 8.0系列从2018年正式发布到现在已经经历了很多小版本的迭代。8.0.27属于2021年底的稳定版本在功能完备性和稳定性上处于一个比较均衡的位置。相比5.78.0在性能、SQL语法、字符集默认值、窗口函数、通用表表达式CTE等方面都有明显提升很多企业生产环境用的就是8.0.x从这个版本入手学习能直接贴合实际工作场景。选8.0.27而不是最新版原因也很简单对于入门和日常开发来说稳定压倒一切。最新版本虽然功能更多但刚发布时可能带来一些兼容性问题比如某些客户端工具连接异常、驱动版本不匹配等。8.0.27经过了一段时间的验证生态相对成熟网上资料也多出问题容易找到解决方案。提示如果你没有特殊需求不要在生产环境盲目追新。8.0系列内部的小版本差异对普通使用者来说感知不强选一个经过验证的稳定版本更重要。1.2 官网下载从哪个入口拿安装包很多人在搜索引擎里搜“MySQL下载”结果点进一堆第三方下载站下载下来要么捆绑软件要么版本不对。正确做法是直接访问MySQL官网的下载页面地址就是mysql.com进入后找到Downloads菜单再选择MySQL Community Server。这个社区版是免费的功能和商业版几乎没有差别学习、开发、个人项目完全够用。在下载页面里系统会自动识别你的操作系统。Windows平台会提供两种格式一种是ZIP压缩包另一种是MSI安装程序。新手强烈建议选择MSI格式名字一般是mysql-installer-community-8.0.27.0.msi这个安装包自带图形化向导后续配置都有界面提示不容易出错。ZIP免安装版适合喜欢自己控制一切的老手可以在多台机器之间拷贝复用但对环境变量、初始化命令、服务注册等都要手动操作第一次接触MySQL时不建议选它。注意官网下载文件比较大通常200MB以上下载时需要连接能正常访问外网的网络环境不要在下载过程中断网或切换网络否则容易得到损坏的安装包。1.3 安装前的系统检查别漏掉这些细节正式双击安装包之前有几个系统层面的检查值得花两分钟做完能省掉后面不少麻烦。第一确认Windows系统是64位且版本满足要求。MySQL 8.0对Windows的系统要求是Windows 7以上但实际开发中用Win10、Win11是主流。右键点击“此电脑”选“属性”可以查看到系统类型和版本。第二检查端口3306是否被占用。MySQL默认监听3306端口如果被其他程序占用了后面启动会直接失败。在命令行执行netstat -ano | findstr :3306如果有输出说明端口被占用。最常见的占用者是之前安装过的MySQL旧版本、MariaDB或者某些开发工具自带的数据库服务。第三确认系统是否有残留的MySQL痕迹。如果以前装过MySQL但没卸载干净注册表、服务列表里可能残留旧信息。保险起见可以在“服务”窗口里查一下有没有名字里带MySQL的服务项有的话先处理干净再装新的。2. 安装全流程从双击MSI到服务启动2.1 安装向导类型Developer Default并不适合所有人双击MSI安装包之后MySQL Installer会先弹出一个选择安装类型的界面。常见选项包括Developer Default开发默认、Server only仅服务器、Client only仅客户端、Full完整安装、Custom自定义。很多教程直接让你选Developer Default但我个人建议根据自己的实际需求来选择不要盲目跟从。Developer Default会一并安装MySQL Server、MySQL Shell、MySQL Workbench、Router、ODBC驱动等一大堆组件好处是开箱即用坏处是装了太多用不到的东西。如果只是学SQL、做后端开发选Server only再加一个MySQL Workbench就完全够了。不过对于纯新手来说选Developer Default也不会有大问题组件之间不会有冲突就是安装时间会长一些磁盘占用会多一些。如果选择Custom则可以手动勾选需要的组件。这里要特别留意MySQL Server这个核心组件是必须选的版本要确认是8.0.27不要混入其他版本。后面还可能出现让你选择客户端程序、MySQL Workbench图形化管理工具、MySQL Shell命令行高级工具的界面按需勾选即可。2.2 安装过程中的依赖检查组件MSI安装器在正式安装前会执行一些依赖检查Check Requirements比如是否安装了Visual C Redistributable。MySQL 8.0在Windows上依赖微软的Visual C运行库如果系统缺少对应版本的运行库安装向导会直接提示并提供下载安装的入口。遇到这个提示不用慌点击执行等依赖装好后再回到MySQL安装流程里继续。这一步是很多人容易忽略的地方。有些系统装了精简版或者很久没更新系统组件导致MySQL安装到一半报错。所以安装前如果发现这个提示先耐心处理依赖这是正常现象不是你的操作有问题。2.3 Server配置阶段Type and Networking等选项怎么选安装文件拷贝结束后安装器会进入MySQL Server Configuration服务配置阶段这里是最关键的一步所有选项都直接影响MySQL能不能正常启动、怎么被连接。第一个选择是Config Type配置类型。有Development Machine开发机、Server Machine服务器、Dedicated Machine专用数据库服务器三个选项。这只是影响MySQL对内存等资源的默认占用策略不是功能差异。个人学习用Development Machine就够了实际部署到服务器上再根据机器配置选Server或Dedicated。第二个选择是Connectivity连接选项。默认勾选TCP/IP端口3306同时有Open Windows Firewall Ports for network access开放Windows防火墙端口的选择框。如果你是装在云服务器或需要让其他机器连接这台MySQL这个防火墙端口要勾上如果只是本机自己用不勾也没什么影响但勾上更省心避免以后要连的时候发现防火墙挡了。第三个是Authentication Method认证方式。这一步在8.0版本里尤其值得注意。8.0默认使用caching_sha2_password认证插件而很多老版本的客户端工具、旧驱动只支持mysql_native_password。界面里一般有两个选项第一个是使用强密码加密认证推荐第二个是使用传统认证方式兼容性好但安全性稍低。如果你要连接的工具比较旧或者你不太确定自己的工具是否支持新版认证建议直接选第二个传统认证后面再讲如何切换。2.4 设置root密码与服务注册接下来是Accounts and Roles账户和角色配置。这里第一件事就是设置root用户的密码。root是MySQL的超级管理员密码一定要设得足够复杂并且牢牢记好。MySQL对密码强度有默认策略太简单的密码会校验不通过要求至少8位且包含大小写字母、数字和特殊符号的组合。除了root密码你还可以在这里手动添加其他用户Add User但新手阶段不需要装好后用root学一阵子等理解权限模型后再创建专用账号也不迟。不过有一件事要提醒root密码忘了很麻烦虽然可以通过特殊方式重置但过程比较折腾建议在配置阶段就把密码记录在本地密码管理工具里。然后是Windows ServiceWindows服务配置。MySQL会默认把MySQL注册为Windows系统服务服务名默认是MySQL80勾选Start the MySQL Server at System Startup表示开机自动启动。我个人建议勾上开机自启这样以后不用每次手动开服务。下面还有一个Run Windows Service as...选项默认是用Network Service账户运行MySQL服务保持默认即可不要改成Local System权限过大反而有安全风险。配置完成后点Execute安装器会应用配置。如果中途报错常见原因就是端口被占用或配置文件写不进去后面第5小节专门讲排查。3. 关键配置项逐项拆解每一步到底在做什么3.1 端口、服务名与连接模型的关系很多人在安装时看到端口号、服务名这些概念不知道是什么意思。用生活里的例子来类比IP地址是一栋楼的地址端口就是楼里的房间号。客户端要访问MySQL这台“楼”里的数据服务需要同时知道楼在哪里主机名或IP和房间号是多少端口号。默认3306这个端口是MySQL事实上的标准“房间号”绝大多数驱动和工具都会默认连接这个端口。万一3306被占用了怎么办在配置阶段可以改端口比如3307、3308。但改了之后后面所有连接命令、连接工具都要跟着带端口参数增加使用成本。所以除非万不得已建议让3306保持空闲把占用端口的程序处理掉而不是让MySQL迁走。Windows服务名默认MySQL80是操作系统用来管理MySQL进程的标识停止、启动、卸载都靠它这个名字在命令行操作时会经常用到。3.2 认证插件caching_sha2_password到底影响什么8.0默认的caching_sha2_password是一个安全性更强的密码认证方案它对密码传输做了加密处理并且有缓存机制减少每次认证时的服务器开销。听起来很美好但问题在于它需要客户端支持这种认证方式。2022年之前的很多客户端、老版本的编程语言驱动、部分图形化工具并不支持这个协议导致“MySQL服务明明启动了密码也没错但就是连不上”。如果你确认自己的工具都够新那用默认认证没问题。如果心里没底安装时直接选兼容传统认证mysql_native_password那项图个省事。已经用默认认证装好的也不用慌后面可以通过命令行给特定用户修改认证方式一行SQL就能解决具体在第5小节里写。3.3 Windows服务与开机自启的取舍MySQL作为一种数据库服务绝大多数场景下希望它老老实实在后台跑着。注册为Windows服务后MySQL可以在系统启动时自动拉起、在后台运行也不需要打开命令行窗口。把MySQL理解成一个随叫随到的“后台值班员”而不是一个需要你手动叫醒的“临时工”这样你的日常使用会轻松很多。有一点要补充如果你的电脑配置一般又长期不开机开机自启的MySQL会占用一些内存。但现代电脑通常不缺这点资源所以从方便角度讲建议保留开机自启。如果你在安装时忘记勾选或者想改这个行为可以打开服务窗口winR输入services.msc找到MySQL80服务右键属性把启动类型改成“自动”或“手动”就行。4. 安装验证与基础连接测试4.1 怎么确认MySQL真的装好了安装完成后第一件事是确认MySQL服务有没有在运行。最直接的方法是winR打开运行框输入services.msc回车在服务列表里找到MySQL80看状态是不是“正在运行”。如果状态是“已停止”可以右键点击“启动”或者直接在命令行里执行net start MySQL80启动服务。接着验证数据库本身能否正常响应。打开命令行窗口建议用管理员权限但不是必须输入以下命令mysql -u root -p系统会提示输入密码输入安装时设置的root密码回车后能看到类似mysql的命令提示符这就说明MySQL服务正常、root账号可以登录。此时可以顺手执行SELECT VERSION();来确认版本号应该返回8.0.27。能走到这一步安装工作基本已经成功了九成。4.2 配置环境变量让mysql命令随处可用每次打开命令行都要输入一长串路径才能运行mysql命令很影响体验。解决方法是把MySQL的bin目录加入系统环境变量Path里。默认安装路径一般是C:\Program Files\MySQL\MySQL Server 8.0\bin操作步骤如下右键“此电脑”选属性点击“高级系统设置”在“高级”选项卡里点“环境变量”在“系统变量”里找到Path这一项点编辑新建一行把bin目录的完整路径加进去一路点确定。重新打开一个命令行窗口输入mysql --version能显示版本号就说明配置成功了。环境变量这个操作不复杂但很实用。它能让你在任意目录下直接调用mysql命令后面学导入导出、执行脚本都会方便很多。这里顺便提醒一下配置完Path后一定要开新的命令行窗口旧窗口读不到新配置是正常的。4.3 用Workbench或命令行完成首次连库MySQL Workbench是官方自带的图形化管理工具在Developer Default安装方式下会一并安装。打开Workbench在首页找到MySQL Connections旁边的加号填入连接名随意、主机名127.0.0.1或localhost、端口3306、用户名root然后点Store in Vault填密码。填好后点Test Connection如果显示Successfully connected说明整个链路都通了。不用Workbench的话命令行也足够完成基础操作。登录后执行SHOW DATABASES;会看到mysql、information_schema、performance_schema、sys这四个默认数据库。这四个库各有分工mysql库存用户权限信息information_schema和performance_schema存元数据与性能数据sys是面向DBA的视图集合。新手不用都搞懂但至少要知道自己的数据不要往这些系统库里放。可以执行CREATE DATABASE test_db;创建一个测试库然后USE test_db;切换进去整个数据库的“首次使用”就完成了。5. 常见报错与排查实录5.1 端口3306被占用导致安装失败安装到应用配置阶段报错提示无法启动服务或者启动后瞬间停止最可疑的就是端口冲突。排查方法很简单在命令行执行netstat -ano | findstr :3306如果看到LISTENING状态的记录记下最后一列的PID进程号再打开任务管理器切到“详细信息”标签页按PID找是哪个进程占用了端口。常见“肇事者”包括旧版MySQL服务、MariaDB以及某些全家桶软件自带的数据库组件。找到占用进程后根据情况决定是停掉它还是卸载它。如果你是第一次装MySQL机器上却已经有3306在监听大概率是以前装过其他数据库。既然你现在要用的就是MySQL建议彻底停掉并卸载旧数据库保持3306端口的干净。如果确实需要保留旧数据库那就只能在MySQL安装时把端口改成3307并在后面所有连接场合带上-P 3307参数代价是每次使用都要多留意端口。5.2 服务启动失败或启动后自动停止的排查思路MySQL服务启动失败报错信息五花八门最简单的排查入口是看错误日志。MySQL在数据目录下会生成.err后缀的日志文件默认数据目录位于C:\ProgramData\MySQL\MySQL Server 8.0\Data注意ProgramData是隐藏目录需要在文件资源管理器里手动开启隐藏项目显示才能看到。打开.err文件拉到最底部里面的错误描述通常会直接告诉你是权限问题、端口问题还是数据目录损坏。常见情况之一是数据目录权限不正确。MySQL服务默认以Network Service账户运行如果数据目录的权限被改过服务就没法读写自然启动失败。解决办法是在数据目录的权限设置里给Network Service账户添加完全控制权限。这个操作在图形界面里就能做右键目录选属性切到“安全”标签页编辑里添加Network Service并勾选完全控制。改完权限再尝试启动服务大部分情况能解决。5.3 忘记root密码强制重置流程装完MySQL最痛苦的事就是过了一阵子把root密码忘了。好在MySQL提供了跳过权限验证的启动方式可以进入“无密码模式”重置。这个操作有一定风险但也确实是官方推荐的恢复手段。第一步停止MySQL服务可以在服务窗口操作也可以执行net stop MySQL80。第二步打开管理员命令行进入MySQL的bin目录执行mysqld --skip-grant-tables --console --shared-memory这条命令会让MySQL跳过权限验证启动。注意在这条命令运行期间它占据了当前命令行窗口别关它。第三步另开一个命令行窗口执行mysql -u root此时不需要密码就能进入。进去后先执行FLUSH PRIVILEGES;然后修改root密码ALTER USER rootlocalhost IDENTIFIED BY 新密码;重置完成后回到第一个窗口按CtrlC停掉跳过权限验证的MySQL实例然后重新启动MySQL80服务用新密码登录即可。注意--skip-grant-tables模式下任何人都能免密登录操作时必须确保没有外部网络接口暴露到公网整个重置过程越短越好改完密码立刻重启恢复正常模式。5.4 客户端工具连不上认证插件兼容性问题安装阶段如果选的是默认强密码认证之后用Navicat、旧版JDBC驱动连接时可能会出现Authentication plugin caching_sha2_password cannot be loaded这类报错。原因前面说过就是客户端不支持新认证插件。解决方案有两种。第一种是升级客户端工具尽量使用支持8.0新认证协议的版本。第二种是临时把用户的认证方式改回传统插件在命令行登录root后执行ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的密码;把这个用户改成传统认证后旧客户端一般就能连上了。从安全性角度说能升级工具尽量升级实在不行再用第二种方案兜底。这个操作对本地开发环境影响不大但如果是在生产环境最好评估清楚再动认证方式。6. 安装完成后的建议与进阶操作6.1 确认数据目录的初始化情况MySQL安装完成后会自动初始化数据目录里面包含系统库和默认配置文件。Windows平台下默认数据目录在C:\ProgramData\MySQL\MySQL Server 8.0\Data配置文件my.ini则在安装目录的根目录下。如果你以后想修改端口、字符集、缓冲池大小等参数都需要编辑my.ini文件改完后重启服务生效。这里有一个特别容易踩的坑my.ini里配置的路径不要随意改动。很多人为了让数据目录不那么“深”手动修改datadir路径结果MySQL启动直接失败因为目录权限没有继承。如果要迁移数据目录建议先初始化新目录、再拷贝数据、最后修改配置而不是直接改路径了事。6.2 了解字符集设置避免中文乱码MySQL 8.0的默认字符集是utf8mb4能完整显示中文和绝大多数Unicode字符这比5.7时代的utf8兼容性好了不少。但如果你连接数据库时用命令行仍然可能遇到中文乱码这通常不是数据库字符集的问题而是客户端连接时的编码没对上。登录时指定字符集可以解决mysql -u root -p --default-character-setutf8mb4在创建数据库时也建议显式指定字符集和排序规则比如CREATE DATABASE test_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;养成这个习惯后以后迁移到其他环境、或者跟其他开发工具对接时中文乱码的概率会小很多。6.3 装好之后下一步学什么数据库装好只是万里长征第一步。接下来建议从几个方向入手第一是SQL基础SELECT、INSERT、UPDATE、DELETE这些增删改查语法必须熟练。第二是数据库设计理解主键、外键、索引、范式知道怎么设计表结构才合理。第三是备份恢复学会用mysqldump做逻辑备份演练一次“误删数据后恢复”的过程比看十遍文档都管用。第四是权限管理试着创建普通用户并限制权限搞清楚root权限的危险边界在哪里。把这些基础打牢MySQL这款数据库就算真正上手了。我个人在实际安装和使用的过程中最大的体会是大部分安装失败不是操作步骤不对而是对每一步背后的配置逻辑不清楚。看不懂端口的作用就会在端口冲突时手足无措不理解认证插件的区别就会在连接报错时一头雾水。所以这篇教程我没有只写“下一步点哪里”尽量把为什么要这么做也讲明白了。最后再悄悄分享一个小技巧安装完成后把my.ini备份一份到网盘或代码仓库里以后换电脑、重装系统直接复制配置文件能省下不少重新配置的功夫。
返回列表