ARTICLE DETAIL

资讯详情

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

MySQL 8.0 Windows安装全攻略:从下载到配置的详细实战指南

MySQL 8.0 Windows安装全攻略:从下载到配置的详细实战指南 1. 安装前必须想明白的三件事1.1 版本选择为什么我建议直接上 MySQL 8.0每次有新手问我“MySQL 该装哪个版本”我从来都是同一个回答装 8.0 系列别犹豫。虽然网上还有不少老教程在讲 5.7但那已经是上一代的东西了。MySQL 8.0 从 2018 年发布到现在经过这么多年的迭代稳定性早就没问题了而且它的默认字符集是 utf8mb4存中文、存 emoji 都不会出现乱码问题——这在 5.7 时代是要额外动手配置的。另一个关键原因是学习成本。你现在去 B 站、去慕课、去各种课程网站搜教程十有八九都是基于 8.0 讲的。如果电脑上装了 5.7跟着教程敲命令某些语法和工具的行为会对不上。比如 8.0 默认的认证方式是 caching_sha2_password5.7 默认是 mysql_native_password这个差异会在你用客户端连接时直接报错非常折磨人。所以与其给自己挖坑不如一步到位装 8.0。我见过太多人卡在安装这一步就放弃了其实真没多难只要按照步骤走十几分钟就能跑起来。本教程默认你在 Windows 10 或 Windows 11 上操作这是目前学生和初学者最常用的环境。1.2 安装包下载认准官方渠道和正确的包类型下载地址我直接给你https://dev.mysql.com/downloads/mysql/ 。记住一定要去官方下载不要图省事去第三方网站下“破解版”或者“绿色版”。数据库这种东西来源不干净后患无穷——我之前就遇到过有人下了个捆绑了挖矿脚本的“精简版 MySQL”装完电脑风扇狂转排查了半天才发现是被拿去挖矿了。官方下载页面打开之后你会看到两个主要选项Windows (x86, 32-bit), ZIP ArchiveWindows (x86, 64-bit), ZIP Archive这里有个特别容易迷惑新手的地方——页面上默认给的是 ZIP 压缩包不是安装程序。往下拉你会看到一个叫 Windows (x86, 64-bit), MSI Installer 的选项这才是图形化安装包。对于新手无条件选 MSI Installer全程鼠标点 Next 就能装完。还有一个小技巧下载页面通常会默认给你最新的 8.0.x 小版本比如 8.0.42。你不用纠结具体小版本号8.0 系列的安装步骤完全一样认准“MySQL Installer MSI”这个关键词就行。下载的时候如果官网速度慢可以选离你近的镜像服务器页面会给你一个镜像列表随便选一个就行文件本身是官方发布的不会有什么问题。1.3 系统检查提前规避 90% 的安装报错我总结了一个规律新手安装 MySQL 时出的问题超过一半跟 MySQL 本身没关系而是系统环境不满足。所以双击安装包之前花两分钟检查一下 Windows 的系统组件能省下后面一大把时间。首先要确认的是 Microsoft Visual C Redistributable也就是 VC 运行库。MySQL 8.0 在 Windows 上依赖这些运行库文件如果系统里缺了安装过程或者之后启动服务时会报错比如常见的“缺失 VCRUNTIME140.dll”就是这个问题。检查方法很简单——打开“设置 → 应用 → 已安装的应用”搜索“Visual C”看看有没有 2015-2022 版本如果没有去微软官网下载最新的 VC 运行库合集装一遍这个属于 Windows 标配装了不亏。其次确认 Windows 系统版本。MySQL 8.0 要求 Windows 7 及以上但我建议你用 Windows 10 或 11毕竟 8.0 很多新特性在旧系统上表现会打折扣而且开发工具也在不断抛弃老系统。最后了解一下你自己的电脑是 64 位还是 32 位。现在基本没有 32 位系统了但如果你还在用老电脑按下Win Pause键看一眼系统类型64 位就下载 64 位安装包32 位就老老实实下载 32 位。别下错了下错了解压、安装的时候会报架构不兼容。提示安装期间建议关闭杀毒软件和安全卫士。MySQL 安装过程会往系统服务里注册新的服务条目部分国产杀毒软件会误拦截导致装一半失败或服务无法启动。装完再开杀毒就行这一步能省去不少烦躁。2. 实操全过程从双击安装包到配置完成2.1 安装类型选择别一上来就全选下载好的 MSI Installer 是一个几百 MB 的安装程序双击之后会先初始化安装向导这个过程可能稍微需要等一会儿。接下来它会问你要装哪种类型这一步非常关键很多人就是在这里装了一大堆用不到的东西。安装类型一共有五种真正需要我们关心的只有两种Developer Default会安装 MySQL Server、MySQL Shell、MySQL Workbench、Router、ODBC 等一系列组件适合开发人员全家桶式安装。Server only只安装数据库服务器本体什么都不带。我的建议是如果你是学生、正在做课程设计、或者刚开始学数据库直接选 Server only装完以后需要可视化工具再单独安装。为什么因为 Developer Default 会连带装一堆你可能这辈子都用不到的东西安装时间翻倍而且这些组件之间还有依赖关系偶尔会触发一些奇奇怪怪的兼容问题。数据库的核心就是服务器本身其他的都是锦上添花。如果你确实想要一个可视化界面那我推荐另一种组合方案选 Custom然后在右边的组件列表里勾选 MySQL Server 8.0.x 和 MySQL Workbench 8.0.x其他都不勾。这个方案兼顾了服务器和可视化操作后续写 SQL 练习的时候也能有图形界面可以看。2.2 检查依赖与正式安装选好安装类型之后安装向导会进入一个叫 Check Requirements 的页面检查系统是否满足安装条件。如果检查项前面是黄色感叹号通常是因为缺少某个运行库它会给你一个 Execute 按钮点一下自动帮你装好缺失的依赖。如果检查项前面是红色的叉那就要注意了——这通常是某个组件的版本不兼容解决办法是回到上一步换个安装类型或者先手动升级一下对应的运行环境。等所有检查项都通过点击 Execute 开始正式安装。这个过程可能会持续几分钟取决于你的网速和磁盘速度。安装进度条走完之后你会发现各类组件前面都打上了对勾这时候直接点 Next进入整个安装过程中最重要的环节——实例配置。这里我要插一句很多人在安装过程中遇到“卡在一个页面不动”的情况十有八九是在下载组件而不是安装。官方 MSI 安装包在检查到某个组件缺失时会联网下载补全如果你用的网络环境不太理想下载会很慢甚至失败。遇到这种情况耐心等一下如果长时间没反应就取消重来选择 Server only 减少下载量。2.3 实例配置密码、端口、服务名一次性搞定配置页面是整个安装过程的重头戏这里设置的参数决定了数据库以后怎么跑。我分几步说清楚。第一步是高可用配置。页面上会问你是想配独立服务器Standalone MySQL Server还是 InnoDB Cluster 集群。老老实实选第一个集群不是新手该碰的东西那是企业级高可用方案需要多台机器配合。第二步是 Type and Networking 页面。在这里你需要留意两个参数一个是 Config Type一个是端口号。Config Type 有 Development Machine、Server Machine、Dedicated Machine 三个选项这个参数决定了 MySQL 给系统分配多少内存资源。作为个人学习和开发用选 Development Machine 就对了它对内存的占用最克制。端口默认是 3306除非 3306 已经被别的程序占用否则不要改动因为大量的教程、连接工具都默认访问这个端口改成别的之后每次写连接串都会多一步心累。第三步是 Authentication Method也就是身份认证方式选择。这是个非常容易踩坑的地方页面默认推荐第一个选项“Use Strong Password Encryption for Authentication”翻译过来就是使用 caching_sha2_password 强密码加密认证。这个选项确实更安全MySQL 官方也是强烈推荐但它有一个弊端——老版本的客户端工具、部分旧版编程语言的数据库驱动不支持这种认证方式连接时会直接报错。如果你用的是 Navicat 11、12 这种老版本客户端或者用的是 PHP 5.x、Python 的旧版 mysql 驱动选了第一个选项之后连数据库会报“Authentication plugin caching_sha2_password cannot be loaded”的错误。所以我个人建议做学习和课程设计直接用第二个选项“Use Legacy Authentication”也就是兼容旧版的认证方式。等你以后真正到企业里做开发再根据生产环境的客户端版本选择认证方式那是后话现在先把环境跑通最重要。第四步是设置 root 密码。root 是 MySQL 的最高权限账号相当于 Windows 的 Administrator。设置密码的时候记住三件事不要设太短、不要设置成纯数字、拿个小本本记下来。MySQL 密码的强度检查会让你输入至少 8 位且包含大小写字母和数字这一步别偷懒千万别设一个 123456 就完事——虽然这是个人开发环境但以后你的数据库可能会存放课程设计的用户数据、论文数据养成用强密码的习惯是数据库从业者的基本素养。设置完密码之后是 Windows Service 配置。这里默认会帮你把 MySQL 注册成 Windows 系统服务也就是开机自动启动。这个默认行为保留就行不用改。服务名默认是 MySQL80你也可以改成 MySQL 或者什么都行自己看得懂就行。唯一需要注意的是Windows 服务账号选择默认的“Standard System Account”即可不要随便改成其他账号否则可能出现服务启不来的情况。接下来一路点 Next最后点击 Execute 执行配置。配置过程会初始化数据库文件、启动服务、应用安全设置。看到绿色对勾和 Finish 按钮时恭喜你MySQL 已经成功安装到了你的电脑上。3. 配置环境变量与命令行验证3.1 把 MySQL 命令变成全局可用安装完成之后先别急着庆祝我们要做一件非常重要的事情配置环境变量。你可能会有疑问刚才明明已经装好了为什么还要配置环境变量原因很简单——环境变量没配好你在命令提示符CMD或者 PowerShell 里输入 mysql 命令系统会提示“mysql 不是内部或外部命令也不是可运行的程序或批处理文件”这样就没办法直接在命令行操作数据库了。配置环境变量的本质就是把 MySQL 的 bin 目录告诉操作系统。因为 Windows 在执行命令时只会在当前目录和 PATH 环境变量指定的目录里寻找可执行文件。默认情况下MySQL 的安装目录是 C:\Program Files\MySQL\MySQL Server 8.0\而命令行的客户端程序 mysql.exe 就藏在它的 bin 子目录里。操作步骤是什么样的呢按下Win键输入“环境变量”打开“编辑系统环境变量”在弹出的“系统属性”窗口右下角点击“环境变量”。在“系统变量”列表中找到名称为 Path 的条目双击它在新窗口里点击“新建”然后输入 MySQL 的 bin 目录路径也就是 C:\Program Files\MySQL\MySQL Server 8.0\bin。路径输完之后一路点“确定”关闭所有窗口。到这里还没完记得要重新打开一个新的 CMD 窗口旧窗口里读取的环境变量是旧的不会自动刷新。这样的细节很多人不注意折腾半天发现还是提示“不是内部或外部命令”其实就差重启一下终端。注意如果你的安装目录不是默认位置比如你自己改到了 D 盘记得把路径替换成你自己的实际目录不要照抄我给的路径。可以用文件资源管理器去 C 盘找到实际的 MySQL 安装目录看一眼确认一下 bin 文件夹的完整路径。3.2 第一次登录验证安装是否成功环境变量配置好重新打开 CMD 窗口输入以下命令验证一下mysql --version如果屏幕上输出了一行类似 mysql Ver 8.0.x for Win64 on x86_64 的文字说明 MySQL 客户端工具已经可以全局访问了。接下来测试登录数据库mysql -uroot -p-u 参数指定用户名root 就是刚才设置的超级管理员账号-p 参数表示需要输入密码。按下回车之后你会看到提示符变成 Enter password: 输入你刚才设置的密码。这里有个细节输入密码的时候屏幕上不会显示任何字符连星号都没有这不是键盘坏了也不是系统卡了是 Linux/Unix 系的命令行程序普遍采用的“不回显”设计目的就是防止别人偷看你输入的密码。输入正确密码回车之后你会看到 MySQL 的命令行提示符通常是这样的Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.x MySQL Community Server - GPL看到这段话MySQL 就算真正安装成功了。接下来你可以先试试几条最基本的命令感受一下数据库操作是怎么回事SHOW DATABASES;回车之后你会看到当前 MySQL 实例里默认存在的几个数据库information_schema、mysql、performance_schema、sys。这四个库都是 MySQL 系统自带的暂时不用管它们的作用你现在只需要知道一件事——你的 MySQL 环境已经能正常接收并执行命令了。到这里安装这一步已经全部完成你在 Windows 上有了一台能跑起来的 MySQL 服务器。不过很多人在安装完成后马上会遇到各种小毛病比如连不上、密码不认、中文乱码之类。下面我就把安装之后常用的一些初始化设置和常见问题一次性讲清楚。4. 安装完成后必做的初始化操作4.1 解决时区问题连接字符串不再报错很多时候你在 Java、Python 或者 Node.js 项目里配置数据库连接串会看到类似这样的报错The server time zone value Öйú±ê׼ʱ¼ä is unrecognized。这个报错中文乱码看着吓人但根本原因很简单——MySQL 默认时区没设置好。MySQL 8.0 安装之后全球的默认时区设置可能没指向中国时区。虽然它使用的是操作系统时间但在处理带时区的日期类型时如果连接串里没明确指定 serverTimezone很多开发框架会找不到合适时区而报错。最简单的处理方法是在 MySQL 命令行里执行SET GLOBAL time_zone 08:00;这一条命令把 MySQL 的全局时区设为中国标准时间。但要注意这个设置重启 MySQL 服务后会失效。如果想一劳永逸可以把 my.ini 配置文件里加上一条 default-time-zone08:00保存后重启 MySQL 服务。my.ini 是 MySQL 的配置文件Windows 下一般放在 C:\ProgramData\MySQL\MySQL Server 8.0\ 目录里这个 ProgramData 文件夹是隐藏的文件资源管理器里需要勾选“查看 → 隐藏的项目”才能看到。4.2 确认字符集中文存储不再发愁MySQL 8.0 的默认字符集是 utf8mb4这个概念可以简单理解为“能装下世界上各种文字的通用编码”中文、英文、日文、韩文、emoji 表情都能正常存。这个默认值已经非常合理所以如果你的需求就是普通的课程设计、个人项目开发在字符集这一块你什么都不用做。但我还是要提一个检查命令方便你心里有数SHOW VARIABLES LIKE %character%;执行之后会显示一堆 character_set 开头的变量。你只需要重点看几个character_set_server 和 character_set_database 是不是 utf8mb4。如果是说明字符集设置正确以后建库建表存中文都不会出现??问号乱码。如果不是可以去 my.ini 的 [mysqld] 段落下加一行 character-set-serverutf8mb4重启服务即可。很多零基础的朋友分不清 utf8 和 utf8mb4 的区别这里一句话点透MySQL 里的 utf8 是“阉割版”它最多存 3 个字节的字符遇到需要 4 字节的 emoji 表情就会报错utf8mb4 才是真正完整的 UTF-8 编码。所以以后无论在哪里看到配置要求条件允许的情况下一律选 utf8mb4不要选 utf8。4.3 创建自己的业务数据库与普通用户安装好 MySQL 后很多人直接拿 root 账号跑来跑去写课程设计这是很不规范的习惯。root 账号权限太大万一命令敲错比如误操作 DROP 了系统表整个数据库实例可能就废了。所以我的建议是从现在开始养成“一套业务一个用户”的好习惯。在 MySQL 命令行里依次执行CREATE DATABASE student_db DEFAULT CHARACTER SET utf8mb4; CREATE USER studentlocalhost IDENTIFIED BY StudentPass123; GRANT ALL PRIVILEGES ON student_db.* TO studentlocalhost; FLUSH PRIVILEGES;第一条命令创建数据库 student_db并指定字符集 utf8mb4第二条创建了一个只能从本机登录的普通用户 student密码是 StudentPass123第三条把 student_db 数据库的所有权限授予这个用户第四条刷新权限让设置立即生效。这里插一句解释 FLUSH PRIVILEGESMySQL 的权限信息会缓存直接修改系统权限表之后通常需要刷新才能让新权限生效。虽然 GRANT 语句本身会隐式刷新权限但多写这一条没有任何坏处作为一种严谨的习惯值得坚持。以后做课程设计、写练习项目都用这个普通账号连接数据库即使玩砸了最坏的情况不过是删掉自己的业务库重建不会把整个 MySQL 环境搞崩溃。5. 常用命令与入门操作速览5.1 数据库的基本增删改查装好了 MySQL很多人不知道下一步该干嘛。这里我整理一套最常用的入门命令保证你跟着敲一遍数据库的日常工作流程就有感觉了。先看数据库这一层的操作-- 查看所有数据库 SHOW DATABASES; -- 切换到指定数据库 USE student_db; -- 查看当前使用的数据库 SELECT DATABASE(); -- 删除数据库谨慎操作 DROP DATABASE student_db;再看表这一层的操作-- 创建学生表 CREATE TABLE student ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT, major VARCHAR(100) ); -- 查看所有表 SHOW TABLES; -- 查看表结构 DESC student; -- 删除表 DROP TABLE student;最后看数据这一层的增删改查-- 插入数据 INSERT INTO student (name, age, major) VALUES (张三, 20, 计算机科学); -- 查询数据 SELECT * FROM student; -- 修改数据 UPDATE student SET age 21 WHERE name 张三; -- 删除数据 DELETE FROM student WHERE name 张三;这几组命令构成了数据库操作的核心骨架。你会发现SQL 语句其实和英语句子很像SELECT 就是“挑选”INSERT INTO 就是“插入到”UPDATE 就是“更新”DELETE 就是“删除”理解了这个逻辑之后写起来并不难。5.2 备份与恢复给数据上保险学数据库的第一天就应该培养备份意识。很多人直到课程设计答辩前一天电脑中病毒、硬盘坏了、误删了表才发现自己改了一周的数据没了那种崩溃我见过不止一次。MySQL 的备份不用装任何额外工具命令行直接搞定。打开一个新的 CMD 窗口输入mysqldump -uroot -p student_db D:\backup\student_db.sql这条命令的作用是把 student_db 这个数据库的所有表结构和数据导出到 D 盘的 backup 目录下生成一个 SQL 文件。以后要恢复数据执行mysql -uroot -p -e CREATE DATABASE IF NOT EXISTS student_db DEFAULT CHARACTER SET utf8mb4; mysql -uroot -p student_db D:\backup\student_db.sql第一条命令重新建库第二条命令把 SQL 文件导入进去。mysqldump 是 MySQL 自带的逻辑备份工具对于中小型数据库完全够用了。我个人的习惯是每天做完代码改动就把数据库备份一次每周再手动备份一份放到网盘或者 U 盘里双保险。这种做法看起来很笨但真正出事的时候你会感激自己当初的“多此一举”。6. 高频问题排查实录6.1 常见错误速查表我把这么多年在安装、使用 MySQL 过程中见过的高频问题整理成了一张表你可以直接对照排查问题现象常见原因解决方案提示“mysql 不是内部或外部命令”环境变量未配置或配置后没重开终端按第 3.1 节配置 PATH重新打开 CMD连接时提示“Access denied for user rootlocalhost”密码输入错误或用户名写错确认密码确认没有多余空格用 -uroot -p 方式重试客户端连接报“Authentication plugin cant be loaded”认证方式与客户端不兼容安装时选 Legacy Authentication或执行 ALTER USER 修改认证方式提示“缺失 VCRUNTIME140.dll”或“MSVCP140.dll”系统缺少 VC 运行库安装 Microsoft Visual C Redistributable 2015-2022MySQL 服务启动失败端口被占用、data 目录权限异常、配置文件语法错误检查 Windows 事件查看器或查看 MySQL 错误日志 .err 文件3306 端口被占用MySQL 启动后立即停止其他程序占用了 3306 端口比如另一个 MySQL实例CMD 执行 netstat -ano | findstr :3306 找到占用进程停止或改端口输入 SELECT 命令时一直提示语法错误SQL 语句末尾忘记加分号MySQL 命令行以分号作为语句结束符回车前检查分号存储中文显示??或中文乱码字符集不是 utf8mb4按第 4.2 节检查并修改 character_set_server重建数据库连接时区报错 unrecognized time zone时区未设置执行 SET GLOBAL time_zone 08:00或修改 my.ini这张表里前三个是新手最常遇到的我挨个展开说一下。先说第一个“mysql 不是内部或外部命令”。很多人按照教程配置完环境变量发现还是报这个错。原因只有要么是路径写错了要么是配置完了没有重开 CMD要么是环境变量配置到了用户变量而不是系统变量。我个人建议把 MySQL 的 bin 目录同时添加到用户变量和系统变量的 Path 里双保险怎么都不会错。第二个“Access denied”。这个报错还有一个隐蔽原因——密码是区分大小写的。如果安装时设置了大小写混合密码登录的时候大小写写反了就会一直提示 access denied。另外如果手误在密码后面多打了一个空格也会报错而且错误信息一模一样。命令行输入密码时看不到回车所以敲错了很难察觉。建议设置密码时避免使用像 Il大写 i 和小写 L这样肉眼难以区分的字符。第三个认证插件不兼容问题其实在安装时选 Legacy Authentication 就能规避。但如果你已经装完了才发现老客户端连不上也不用重装用 root 登录 MySQL 命令行执行下面这条命令修改认证方式即可ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的新密码; FLUSH PRIVILEGES;如果 root 也连不上还可以在 my.ini 的 [mysqld] 段下临时加一行 skip-grant-tables重启服务后免密登录执行修改再删掉这一行并重启服务。这个操作相当于 Windows 的安全模式适用于忘记 root 密码的紧急场景。但有一点必须提醒skip-grant-tables 模式下任何人都能免密登录数据库极其危险处理完必须立刻删掉切记。6.2 关于卸载重装别让残留配置坑了你我必须要说一句如果在安装过程中实在折腾不通卸载重装完全不可耻。MySQL 的安装虽然不难但涉及服务、注册表、数据目录这些系统层面的东西有时候哪一个环节出问题排查半天不如直接推倒重来干净。不过重装有个前提——卸载要卸干净。很多人卸了 MySQL 再装遇到的问题是“装完以后还是老配置”这是因为 MySQL 的旧数据目录和配置文件根本没被删干净。彻底卸载的正确姿势是第一步在“设置 → 应用”里卸载 MySQL Installer 和 MySQL Server。第二步以管理员身份打开 CMD执行 sc delete MySQL80把残留的 Windows 服务删掉。第三步手动删除残留目录一般有三个位置C:\Program Files\MySQL、C:\ProgramData\MySQL这是隐藏目录存放数据、配置文件、日志、C:\Program Files (x86)\MySQL。第四步按Win R输入 regedit 打开注册表编辑器删除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下跟 MySQL 相关的键值——这一步要非常小心只删 MySQL 相关的不要误删其他系统服务的键。最后重启电脑再重新安装。这套流程走完你的系统里就不会再有残留的 MySQL 配置了再装的时候就是一台“干净”的机器大概率不会再出之前那些奇奇怪怪的问题。我个人在实际操作中的体会是MySQL 的安装本身并不是什么高深技术它考验的其实是耐心和对细节的把控。把环境变量配好、把认证方式选对、把密码记录好这三个点抓住了整个安装过程就已经成功了九成。剩下的所谓“报错”十有八九都能在错误日志里找到原因实在不行卸载重装一次也就解决了。最后再分享一个小技巧装好 MySQL 之后把安装过程中用到的密码、端口号、服务名、安装路径整理成一个文本文件统一存放看起来是多此一举但半年后你重新连接数据库时一定会感谢当初那个细心的自己。
返回列表