尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

MySQL 8.0免安装版Windows部署全攻略:从解压到配置实践

MySQL 8.0免安装版Windows部署全攻略:从解压到配置实践 简介这是一份MySQL 8.0免安装版资源包面向需要在本地或服务器上快速搭建数据库环境的开发者、运维人员及初学者。压缩包解压至D盘即可直接使用无需手动配置环境变量或修改系统服务双击startup.bat即可启动默认端口3306root用户初始密码为root若需迁移目录只需调整my.ini中的basedir与datadir。资源共420个文件压缩包约186.28MB主要包含可执行程序、动态链接库、系统表定义文件、SQL初始化脚本、启动脚本及配置文件等覆盖MySQL运行的完整组件。已有591人学习下载适合希望绕过安装向导、快速获得可用数据库实例或用于学习和二次开发配置的人群。1. 项目概述为什么最终选择了mysql8.0免安装版先交代一下背景。前阵子要给一批测试环境装MySQL七八台Windows机器版本要统一配置还得一模一样。如果用官方msi安装包一台台点下一步装完还得改路径、改字符集、改端口一台没个半小时下不来。后来换成了mysql8.0免安装版——去官网下载zip压缩包解压、初始化、注册服务单台机器三分钟搞定。这篇文章就把这套流程完整复盘一遍包括版本选型细节、配置要点和排查思路适合要批量部署环境的同学、想在Windows上清爽使用MySQL的开发者以及那些被安装版卸载残留坑过的人参考。1.1 免安装版和msi安装版到底差在哪MySQL 8.0的免安装版官方叫ZIP Archive说白了就是一份解压就能用的二进制文件集。它和传统的msi图形化安装包背后的引擎是同一个mysqld.exe、同一个bin目录。区别只在于msi版帮你做了写注册表、创建服务、设置路径这些事还顺手把一堆用不上的组件塞进来免安装版把这些决定权全部交还给你。对比项msi安装版免安装版zip安装过程图形向导、填配置解压手动初始化安装路径默认Program Files可改但麻烦完全自定服务注册自动手动命令行注册服务名可控卸载残留常见注册表清不干净整个目录删除即卸载批量部署繁琐脚本化友好多版本共存麻烦多目录多实例各管各的其实对绝大多数桌面开发者来说msi版的便利只是假象。服务跑起来以后基本不会再去碰安装向导阶段做过的那些选项反而是卸载的时候服务残留、注册表残留、数据目录残留一个比一个难处理。免安装版的理念就很直接我要保留一个服务就在bin目录下执行一条命令我想删掉停服务、删服务、删目录三步走完。1.2 适用场景与版本选型的取舍从实践来看免安装版最适合下面几类场景。第一测试环境批量部署。我自己就是为了多台Windows服务器快速装一致版本才切过来的。第二本地开发学习。比如你手头有一个5.7的实例正在用想体验8.0的新特性又不想影响现有环境解压一份直接跑在3307端口就行。第三给别人做环境交付或离线部署zip包拷过去就完事不依赖网络安装器。反过来说如果你只是想赶紧跑起一个默认配置的MySQL对目录在哪、服务名是什么都不关心那msi安装包确实能省几步点击。顺便回答一个很常见的问题mysql8.0是免费的吗官网下载的这个社区版Community Server是开源免费的采用GPL协议平时开发和测试用完全够企业版才需要商业授权普通人基本不用考虑。另外有些人推荐用Docker来跑MySQL 8.0方向没错但在Windows本地特别是纯开发机上Docker Desktop本身就要装、要配、还占资源如果你只需要一个马上能跑的MySQL实例zip免安装版反而更轻量。Docker更适合在Linux服务器上做编排本地快速起监听服务绿色包并不输它。2. 下载与准备目录、版本和配置文件的正确打开方式2.1 下载zip版的两个避坑细节下载地址就是MySQL官网的dev.mysql.com/downloads/mysql/进去之后一定要选Windows (x86, 64-bit), ZIP Archive这个条目。这里有两个特别容易踩的坑一是别手滑点成Installer版本那个是图形安装向导不是我们要的zip包二是页面下拉会有一堆包带debug字样的、带测试标识的都不要直接认体积在200MB左右、后缀是.zip的那个文件。下载之后顺手记一下版本号目前8.0的小版本尽量往新选8.0.34以后的都还算稳定。解压到的目标目录我习惯放在D盘根目录下类似D:\mysql-8.0.36-winx64。这里有一个关键要求目录名和父目录都不要有中文和空格。原因很现实my.ini里要写绝对路径路径一旦带空格各种工具解析时容易出莫名其妙的问题中文路径在部分编码环境下连初始化都会报错。所以从第一步开始就规矩一点后面省掉很多麻烦。另外解压出来这个目录本身就是以后的数据和配置中心定好位置之后就别再挪避免改路径带来的连锁问题。2.2 my.ini配置必须搞懂的三个关键点zip版解压后是没有my.ini的需要手动创建。我的模板如下拿到就能用[mysqld] # 服务端口 port3306 # 安装目录改成自己的实际路径 basedirD:/mysql-8.0.36-winx64 # 数据目录MySQL会自动创建 datadirD:/mysql-8.0.36-winx64/data # 默认字符集 character-set-serverutf8mb4 # 默认排序规则 collation-serverutf8mb4_general_ci # 认证插件兼容可选 default-authentication-pluginmysql_native_password [client] default-character-setutf8mb4第一个关键点是basedir和datadir必须写成你自己的实际路径斜杠用正斜杠或双反斜杠避免单反斜杠的转义问题。第二个关键点是MySQL 8.0默认的认证插件是caching_sha2_password安全性更强但老版本的工具会连不上如果你在用旧版Navicat之类的客户端又不想马上升级可以在[mysqld]下加一行default-authentication-pluginmysql_native_password做兼容。第三个关键点是字符集必须锁死utf8mb4现在不光表情符号很多生僻汉字也得依赖这个字符集5.7时代默认latin1导致的中文乱码问题在8.0里不主动设置一样会出现。再补充一条容易忽略的细节连接层字符集和服务层字符集要一起设。很多同学只在[mysqld]里写了utf8mb4结果表的编码是对的从命令行和工具连进去时中文又乱就是因为[client]这段没跟上。两侧都写上从建立连接、执行SQL到落盘存储整条链路的字符集保持一致后面基本碰不到乱码。3. 部署实操从解压到Navicat连通全流程3.1 初始化数据库先搞清楚--initialize和--initialize-insecure下载和配置都准备好以后进入正式部署。先在命令行切到mysql的bin目录cd /d D:\mysql-8.0.36-winx64 bin\mysqld --initialize-insecuremysqld有两个初始化参数用途完全不同。mysqld --initialize会生成一个随机临时密码并写到data目录的err日志文件里第一次登录时得先翻日志把密码找出来mysqld --initialize-insecure则是初始化出一个root空密码账号登录后马上改密就行。我推荐新手用--initialize-insecure省去翻日志这一步。两个参数的共同点是执行完后目录下会出现data文件夹里面就是MySQL初始化好的系统库。这里有个很多新手被卡住的点执行mysqld命令前一定要保证当前终端已经切换到了mysql的bin目录或者直接把bin目录加进了环境变量。否则系统会提示“不是内部或外部命令”。如果你用的是PowerShellcd命令也要注意路径写法不要照搬Linux风格的绝对路径。初始化完成后接下来注册Windows服务并启动bin\mysqld install mysql8 net start mysql8mysqld install后面的mysql8就是服务名。不写的话默认叫MySQL但我建议明确指定一个因为服务名直接关系到多实例管理——以后你想在同一台机器上跑两个MySQL3306一个、3307一个起两个不同服务名就行互不干扰。注册成功后执行net start mysql8服务正常起来到这一步部署工作基本完成了七成。3.2 首次登录、修改密码与远程授权服务跑起来以后打开一个新的命令行窗口执行下面命令登录mysql -u root -p因为我们初始化用的是--initialize-insecure密码是空的提示输入密码时直接回车就进到MySQL提示符。进入后第一件事就是改密码ALTER USER rootlocalhost IDENTIFIED BY YourStrongPass123!;这里要注意MySQL 8.0的默认密码策略是validate_password强度默认是MEDIUM等级要求密码至少8位、必须包含大小写字母和数字或特殊符号否则会直接报策略不满足。如果你想本地学习图省事可以适当把策略调低但生产环境千万别这么干。如果还有远程连接的需求建议不要直接用root去连而是创建一个专用账号。比如你要给一个内网IP为10.0.0.5的应用开权限CREATE USER app10.0.0.5 IDENTIFIED BY YourPass123!; GRANT ALL PRIVILEGES ON *.* TO app10.0.0.5; FLUSH PRIVILEGES;把主机部分写成%就是允许所有主机连接方便但风险高生产环境尽量收敛到具体IP。Host字段的匹配规则是MySQL权限管理里最容易忽略的一环很多人连不上远程实例排查半天才发现是用户名后面跟的host不对。3.3 环境变量配置与常用客户端工具连接命令行每次都要先进bin目录再敲mysql太繁琐。把bin目录加到系统PATH里一劳永逸右键此电脑-属性-高级系统设置-环境变量在系统变量里找到Path编辑新增一行D:\mysql-8.0.36-winx64\bin即可。配置完新开一个终端窗口全局就能直接使用mysql命令了。到这一步可以拿Navicat或者DataGrip验证一下。连接信息填主机127.0.0.1或localhost、端口3306、用户名root、密码换成刚才设的密码。如果你用的Navicat版本比较旧连接时提示Authentication plugin caching_sha2_password cannot be loaded那就是认证插件不兼容的问题。解决办法有两个要么在my.ini里配置default-authentication-pluginmysql_native_password后重启服务让新账号默认用旧认证方式要么升级客户端到支持8.0的新版本。我个人建议直接升级工具因为mysql_native_password以后在8.x版本里会逐步退出舞台一直开兼容模式不是长久之计。4. 常见问题与排查技巧实录4.1 服务启动失败别蒙头猜先看错误日志net start mysql8时报错是最常见的一关。我把自己遇到的典型问题整理成了一张速查表报错现象常见原因处理方法发生系统错误 2服务没注册或服务名写错重新执行mysqld install并核对服务名发生系统错误 5权限不够用管理员权限打开终端再执行服务启动后自动停止my.ini路径写错或data目录异常检查配置路径删除data目录重新初始化提示端口被占用3306已被其他实例占用用netstat -ano排查占用进程换端口最省时间的排查法是看错误日志。data目录下会生成一个以计算机名命名的.err文件里面记录了启动过程的全部错误信息报错原因基本都能从里面找到。我遇到过一个小众问题my.ini里basedir的盘符大小写写错了服务秒退日志里直接提示找不到路径一看就知道了。另外如果my.ini里的变量名写错或者配置不合法服务也会秒退。写完配置后用bin\mysqld --console在前台启动控制台会直接打印错误信息比看日志更快。这个命令平时调试很有用确认没问题了再注册成服务正常跑。4.2 登录报错和远程连不上的排查链路Access denied for user rootlocalhost是登录时最常见的报错。如果是忘了密码可以用跳过授权表的方式重置先停服务然后以bin\mysqld --skip-grant-tables方式启动此时任何密码都能进入MySQL接着执行FLUSH PRIVILEGES和ALTER USER把root密码重置掉最后杀掉这个临时进程恢复正常启动。这个办法在紧急情况下相当好用但要注意操作期间实例不能对公网开放相当于不设防。远程连接不上的排查我建议按链路来先ping服务器IP确认网络通不通再用telnet 127.0.0.1 3306或telnet服务器IP 3306看端口通不通第三步查防火墙入站规则有没有放行MySQL端口最后才怀疑用户权限问题。很多人第一步就怀疑MySQL配置绕了一大圈发现是防火墙没开。Windows的入站规则默认不会为MySQL放行3306如果你是远程连接需要手动添加入站规则放开端口这条踩的人非常多。4.3 彻底卸载与目录迁移的额外心得用msi安装版的同学卸载不干净大多是因为只卸载了程序本体服务、注册表残留还留在系统里。免安装版根本没有这种顾虑net stop mysql8停掉服务再执行mysqld --remove mysql8删掉Windows服务最后把整个mysql目录删除就完事。如果还需要保留数据把data目录复制到安全位置重新部署时再指回去就行。目录迁移方面免安装版给了我一个很大的惊喜。之前我把整个mysql目录从一台电脑打包到另一台电脑只要保持解压路径一致服务名一致其他都不用动直接就能跑。如果路径变了记住同步改my.ini里的basedir和datadir把data目录清掉重新初始化。这种可移植性在批量交付环境时特别实用相当于把一套MySQL环境装进了一个文件夹里。最后说点个人体会。我用免安装版最大的感受是它把MySQL从“安装软件”变成了“管理目录”。你在乎的目录结构、服务名、端口、字符集配置全都可以按需定制出了问题也容易定位——删目录就是卸载改配置就是重来没有那么多隐藏的注册表开关。现在我给同事交付环境习惯把my.ini、初始化脚本、启动脚本都放到同一个目录下新机器解压、执行初始化、导入数据几条命令下来五分钟搞定。如果你也被安装版的“装完不知道怎么改目录”“卸载总是不干净”折磨过强烈建议切到zip免安装版折腾一次熟悉之后你就不会再想回头了。本文还有配套的精品资源点击获取
返回列表