先说明一下自己的身份认知,我是接到这个任务后,必须严格按你这一大套规范来的创作型模型。现在直接干活,不整虚的。
说实话,数据库这行干久了,MySQL的安装和卸载看起来是入门第一课,但恰恰是这第一课,能劝退不少人。我见过太多人卡在“明明按教程装的,就是连不上”“卸载之后重装,怎么装都报错”“服务起不来,logs里全是看不懂的英文”这种问题上。这篇我就把Windows和Linux两条主流路径下的安装、配置、验证、彻底卸载以及高频排错,按我实际干活的经验,一次讲透。适合刚接触数据库的运维新人、转行做后端开发的工程师,也适合被MySQL折腾过、想搞清楚原理的老手。
1. 装之前先想清楚:版本与场景选型
很多人上来就搜“mysql安装教程”,看完就动手,装完就后悔。我先泼盆冷水:MySQL的安装从来不是“下一步下一步”那么简单,你先得知道自己要在什么环境里用它、用哪个版本,否则后面大概率要返工。
1.1 MySQL 5.7还是8.0:别再用老古董写新项目
先看版本。MySQL 5.7在2023年已经结束官方支持(EOL)了,意味着不再有官方安全补丁和bug修复。虽然国内大量存量系统还在跑5.7,但我个人的态度很明确:凡是新项目、新环境,一律从MySQL 8.0起跳。8.0带来了不少实用的东西,比如:
- 默认字符集是utf8mb4,而且是真正的utf8mb4,emoji、生僻字存进去不会变成问号。5.7时代还得手动改字符集,很多人就是栽在这上面。
- 窗口函数、公共表表达式(CTE)这些现代SQL能力,写复杂统计报表会顺手很多。
caching_sha2_password默认认证插件,安全性比5.7的mysql_native_password强不少(虽然也带来了老客户端连不上的兼容问题,这个后面细说)。- 数据字典统一化,
information_schema的查询速度比5.7快很多。
至于8.0和8.4(LTS)怎么选?我的建议很简单:求稳就装8.0.x最新版,观望就等8.4在更多生产环境跑稳了再说。8.0现在已经很成熟了,绝大多数云厂商的RDS也默认是这个版本线,你本地环境跟线上保持一致,能少踩很多坑。
1.2 操作系统与安装方式:Windows和Linux两条路要分开看
安装方式的选择,本质上是你对这个环境后续如何运维的预判。我用下表做个直观对照,这是我最常给团队讲的一张表:
| 环境 | 推荐安装方式 | 理由 | 典型场景 |
|---|---|---|---|
| Windows 个人学习/开发 | MSI安装包 | 图形化、省心、自带服务管理 | 本地搭环境练SQL、做课程设计 |
| Windows 生产(极少) | ZIP二进制包手动部署 | 可控性更高,便于管理数据目录和服务配置 | 特殊业务必须Windows部署 |
| Ubuntu/Debian | 官方APT仓库安装 | 升级方便、依赖处理干净、ystemd集成好 | 最常见的Linux生产环境 |
| CentOS/RHEL系 | 官方YUM仓库或RPM包 | 同理,且RHEL系没有apt,另有选择 | 传统企业机房环境 |
| Docker容器环境 | 官方镜像 | 隔离性最好、环境一致性最强 | 微服务架构、本地联调 |
需要强调的一点是:很多Linux初学者习惯直接用系统自带的软件源装MySQL(比如Ubuntuapt install mysql-server),这样做不是不行,但系统源里的MySQL版本往往比较旧,比如Ubuntu 20.04自带的MySQL是8.0.19,而官方已经出了8.0.36。版本落后不光意味着少功能,更可能带着已修复的安全漏洞。所以我在Linux上永远优先选择官方仓库。
2. Windows下安装MySQL 8.0的完整流程
Windows上装MySQL,最常见的是两条路:MSI安装包(图形化点选),以及ZIP压缩包(手动初始化配置)。MSI适合刚入门的人,ZIP适合想弄清楚MySQL到底在系统里干了什么的人。我先把MSI这条主线讲透,再讲解ZIP的完整步骤。
2.1 下载安装包时分辨几个“陷阱”
去MySQL官网下载页(dev.mysql.com/downloads/mysql/)你会看到一堆文件名,很多人直接懵。别怕,几个关键区分点:
mysql-installer-community-8.0.xx.msi:这是在线安装器,体积只有几十MB,运行时会根据选项去下载真正的组件。适合网络好、需要定制组件的情况。mysql-installer-web-community-8.0.xx.msi:同样是安装器,但名字里的“web”强调它更依赖在线下载。其实两个MSI运行后的体验区别不大,我一般直接下载完整版(Full)或者选“No thanks, just start my download”去下载离线安装包。- 真正干活儿要分清的是Upload/Developer/Server的区别:
mysql-8.0.xx-winx64.zip(现在叫mysql-8.0.xx-windows-x64.zip)是纯二进制压缩包,不用安装器,适合做绿色版、便携版,但需要手动初始化。
之前还有个容易错的地方是32位和64位:MySQL 8.0开始官方不再提供32位Windows版本,如果你的机器还是32位系统,我只能建议先把系统重装成64位再说,别在32位环境上浪费时间。
2.2 MSI安装界面逐项说明(含最容易误操作的两个选项)
双击MSI后,重点盯着几个界面:
Choosing a Setup Type这一步,我几乎每次都选Server only,如果你是为了开发自用,不需要装MySQL Workbench(图形化管理工具)和Excel插件之类的。Developer Default会把Workbench、Shell、Router一堆东西全装上,不是不好,而是给初次安装的人增加混乱——你以为装的是MySQL,结果装了一堆还不知道干什么用的组件。
Type and Networking界面里,Config Type选Development Machine还是Server Machine取决于内存大小。我干活时选Server Machine,因为Development Machine会限制InnoDB缓冲池大小到较小值,跑本地大查询可能变慢。
Authentication Method这里有个大坑:两个选项分别是“Use Strong Password Encryption”(caching_sha2_password)和“Use Legacy Authentication”(mysql_native_password)。如果安装完要连老版本的Navicat、PHP 5.x、或者跑了多年没升级的Python库,选Legacy能让你少掉几把头发;但如果全是新工具,就用Strong。这不是版本新旧的意气之争,是兼容性的现实判断。我这些年给团队装环境,最怕的就是装完应用连不上,最后排查两小时发现是认证插件不兼容。
Windows Service界面里,Run Windows Service as默认是Standard System Account,我建议保持默认,不要一好奇就改成自定义账号。自定义账号意味着你后续要给这个Windows用户单独授权数据目录访问权限,很多服务起不来的问题都出在这。
2.3 用ZIP压缩包手动部署:看清MySQL到底做了什么
如果你想知道MySQL在Windows上到底是怎么跑起来的,我强烈建议手动走一遍ZIP部署。这能帮你彻底理解服务的本质。
去官网下载mysql-8.0.xx-winx64.zip后,解压到D:\mysql-8.0.36-winx64之类的目录。接着做这几步:
第一步,建配置文件my.ini。MySQL在Windows上启动时会依次扫描几个位置的配置文件,包括C:\Windows\my.ini、安装目录的my.ini。建议在解压目录下手动建一个my.ini,内容参考:
[mysqld] # 端口号,默认3306,可以改,但要全局一致 port=3306 # 数据目录,MySQL的所有库表文件都在这 datadir=D:/mysql-8.0.36-winx64/data # 安装目录 basedir=D:/mysql-8.0.36-winx64 # 字符集,统一用utf8mb4,别再用utf8了 character-set-server=utf8mb4 default-authentication-plugin=caching_sha2_password [client] default-character-set=utf8mb4这里要说一下,为什么数据目录要单独指定。模板默认的datadir是相对basedir的data文件夹,但如果你哪天想把数据目录挪到另一块磁盘(比如SSD),提前用datadir指定路径就不会在迁移时抓瞎。
第二步,初始化数据目录。用管理员身份打开命令提示符,进入解压目录的bin文件夹,执行:
mysqld --initialize-insecure--initialize会生成一个随机root密码,日志里显示;而--initialize-insecure生成的root用户是空密码。我懒,学习环境用insecure,生产环境建议用--initialize并立即改密。
注意运行完要检查datadir目录下是否生成了auto.cnf、ibdata1等文件。如果命令行一闪而过没报错,但目录是空的,八成是配置文件里的路径写错或目录权限不对。
第三步,把mysqld注册成Windows服务:
mysqld --install MySQL8这里的MySQL8是服务名,自己定义。注册完成后用net start MySQL8启动服务,或者去服务管理器(Win+R输入services.msc)里启动。
手动部署走完这一遍,你再看MSI安装后的“配置密码、开机自启、日志位置”这些行为,思路会清楚得多。
3. Linux环境下安装的正确姿势
Linux上装MySQL,不同发行版差异不小。我用最主流的Ubuntu/Debian系和CentOS/RHEL系分开讲,Docker方式单独提一嘴。
3.1 为什么不要直接apt install mysql-server
前面版本对比时提过“系统源版本旧”的问题,这里再补充一个技术细节:Ubuntu系统源里的mysql-server其实是MySQL官方版本的重新打包,但包维护方会做自己的补丁和调整,导致你在系统源版MySQL上排错时,搜到的官方文档和报错信息对不上。这种感觉就像用第三方编译的软件,出了问题连官方论坛都帮你排查不了。
所以我一直用MySQL官方提供的APT仓库。操作步骤:
# 1. 下载官方仓库配置文件 wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb # 2. 安装仓库配置(期间会弹蓝屏选择要安装的MySQL版本,选8.0即可) sudo dpkg -i mysql-apt-config_0.8.33-1_all.deb # 3. 更新软件源,让apt看到官方仓库里的包 sudo apt update # 4. 安装 sudo apt install mysql-server -y装完后检查一下版本:
mysql --version如果输出版本还是系统源的老版本,说明你仓库配置没生效或者缓存没刷新。刚才那串命令输完,mysql --version应该显示8.0.x的官方版本号。
3.2 用RPM和YUM在CentOS/RHEL系上装
CentOS 7/8、Rocky Linux等RHEL系环境,没有apt,我的做法是先用YUM安装官方仓库配置:
# 下载官方RPM仓库包(版本号持续更新,注意对应系统) wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm # 添加仓库 rpm -Uvh mysql80-community-release-el7-11.noarch.rpm # 安装 yum install mysql-community-server -y这里经常出现的坑是:yum源里同时存在多个版本(如mysql57和mysql80),默认启用的却是你不想要的那个。安装前最好确认一下:
yum repolist enabled | grep mysql如果看到启用的仓库版本不对,需要手动编辑/etc/yum.repos.d/mysql-community.repo,把想要版本对应的enabled=1,其他版本改成enabled=0。
装完初始化并启动:
sudo systemctl enable --now mysqld # 首次启动后自动生成临时密码 grep 'temporary password' /var/log/mysqld.log拿临时密码登录后第一件事必须改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Your-New-Password-123';MySQL 8.0默认的密码强度要求很高(至少一个大写、一个小写、一个数字、一个特殊字符且长度≥8)。如果只想本地学习不想为难自己,可以在/etc/my.cnf里把validate_password.policy=LOW配置上,等真正部署生产环境时再收紧。
3.3 Docker一行命令装MySQL,但必须知道那个坑
Docker方式可以当作“动一发而不动全身”的安装利器,官方镜像一句话就能跑起来:
docker run -d \ --name mysql8 \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=root123456 \ -v /opt/mysql-data:/var/lib/mysql \ mysql:8.0这里有几个关键点:
-v /opt/mysql-data:/var/lib/mysql是持久化挂载。不挂载的话,容器一旦删掉,你数据库里的所有数据跟着灰飞烟灭,没有任何提示。本地联调可以不挂,但你心里得清楚。- 容器里的MySQL默认字符集不一定是你想要的,建议加上
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci参数,或者在容器启动后手动改。 - Docker镜像里的MySQL默认只监听3306端口映射到宿主机,如果你有多个MySQL实例在跑,端口映射要规划好,否则后启动的容器会启动失败(端口被占用)。
Docker的最大优势是环境一致,比如你本地用mysql:8.0.36镜像,线上CI/CD也用同一个镜像,就基本消灭了“在我机器上能跑,在你机器上不能跑”的问题。
4. 安装之后的第一件事:基础配置与连通性验证
装完MySQL但不做配置和连通性验证,等于白装。这一节讲安装完立刻要做的事,以及怎么快速判断“MySQL能用了吗”。
4.1 默认密码和临时密码去哪儿找
这个步骤各平台不一样,我统一列出来:
- Windows MSI安装:安装过程里的配置向导会让你设root密码,就是那一步“Root Account Password”。如果当时跳过了,默认可能是空密码,可以直接
mysql -uroot -p后回车登录(密码为空),但8.0不太可能让你跳过,几乎都会强制设置。 - Windows手动部署:用了
--initialize-insecure就是空密码,用了--initialize则看命令行输出的临时密码。 - Linux(deb/rpm):临时密码写在
/var/log/mysqld.log里,命令是:
看到类似sudo grep 'temporary password' /var/log/mysqld.logA temporary password is generated for root@localhost: xxxxxx,拿这个临时密码登录,然后立刻改密码。
改密码的SQL:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES;4.2 基础配置检查:字符集、端口、连接数
登录MySQL后,我建议先做一轮“体检”,几组SQL就能看出安装是否健康:
-- 查看端口(默认3306) SHOW VARIABLES LIKE 'port'; -- 查看字符集(应该全是utf8mb3/utf8mb4,别出现latin1) SHOW VARIABLES LIKE 'character_set_%'; -- 查看最大连接数(默认151,这个值对小型应用够用) SHOW VARIABLES LIKE 'max_connections'; -- 查看数据目录位置(确认是不是你预期的路径) SHOW VARIABLES LIKE 'datadir';如果字符集还是latin1(MySQL老版本常见),说明配置文件没生效或装的时候没注意。永久修改字符集,Windows改my.ini,Linux改/etc/my.cnf,统一加上:
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci改完重启MySQL服务才会生效。需要提醒的是,collation(排序规则)在8.0默认偏好是utf8mb4_0900_ai_ci,跟老数据库迁移过来时可能不一致,排序结果会有些微妙差异。如果以后要迁移老库,我更喜欢用utf8mb4_unicode_ci,兼容性稳一点。
4.3 连通性验证:本机、远程、防火墙三层排查
验证分三步走,每步都能定位不同层次的故障:
第一步,本机登录:
mysql -uroot -p能进去就说明服务正常、密码正确。
第二步,TCP端口监听状态:
Linux上用:
sudo netstat -tlnp | grep 3306Windows上管理员命令行:
netstat -ano | findstr 3306如果监听地址是127.0.0.1:3306,那说明MySQL只允许本机连接,远程连不上是因为还没配置监听外部IP。生产环境如果要让别的机器连,需要在my.ini//etc/my.cnf里设置:
bind-address = 0.0.0.0改完重启服务。
第三步,远程客户端测试连接。在另一台机器上执行:
mysql -h192.168.1.10 -uroot -p连不上时,按顺序排查:
- 防火墙是否放行3306端口:Linux执行
sudo ufw status或sudo firewall-cmd --list-ports,Windows检查“Windows Defender防火墙”入站规则。 - MySQL用户是否允许从远程主机登录:MySQL的用户是由“用户名@主机”组成的,root默认只允许localhost登录。要允许远程访问,需要创建专门用户:
CREATE USER 'appuser'@'%' IDENTIFIED BY 'App@123456'; GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%'; FLUSH PRIVILEGES;%表示所有主机,生产环境建议替换成具体IP或网段,别图省事全放开。 - 网络是否能通:用
ping只能测ICMP,建议用telnet ip 3306或nc -zv ip 3306测TCP连通性。能通但登录失败,问题基本就是用户授权或者密码错了。
5. 卸载比安装更考验耐心:Windows彻底卸载手册
“装不上”的根源一大半是“没卸干净”。Windows上MySQL的卸载尤其麻烦,因为MSI安装器会自动注册Windows服务和写注册表,光靠控制面板卸载总会留下残骸。我见过太多人反复“装→卸→再装”,最后绝望到重装系统,其实都是残留问题。
5.1 为什么卸载后重装会失败
MySQL在Windows上留下的残留,主要集中在四个位置:
| 残留类型 | 位置 | 后果 |
|---|---|---|
| Windows服务 | 服务管理器里残留“MySQL”服务项 | 重装时提示“服务已存在”,安装器无法继续 |
| 数据目录 | C:\ProgramData\MySQL | 新安装初始化时冲突,或者把旧库的脏数据带出来 |
| 注册表项 | HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\MySQL等 | 安装器检测到已有MySQL相关注册表信息,直接报错 |
| PATH环境变量 | 系统PATH里残留bin路径 | 命令行里执行mysql命令还能调出旧路径下的版本,新版本被“雪藏” |
这就是为什么很多人卸载后运行mysql -V,还能看到老版本号的原因——你调用的根本不是新装的那个MySQL。
5.2 我的三步清理法:服务、目录、注册表
下面是我验证过很多次的彻底卸载流程。把所有步骤都过完,再重新装才能丝滑。
第一步:停止并删除服务
# 管理员身份打开cmd或PowerShell net stop mysql sc delete mysqlsc delete是删除服务的标准命令。如果服务名不是mysql,先执行sc query | findstr mysql查一下服务名。服务删除成功会有提示,如果提示“服务不存在”,说明之前手动部署时根本没注册成服务,或者服务残留已经被清了一道。
第二步:删除残留目录
MySQL在Windows下默认会在两个位置放东西,都要删:
rd /s /q "C:\ProgramData\MySQL" rd /s /q "C:\Program Files\MySQL"如果你当初是ZIP部署的,还得把解压目录(比如D:\mysql-8.0.36-winx64)整个删掉,特别是里面的data目录。删之前想清楚:这个目录里如果有你重要的库文件,请先备份,删了可真没了。
第三步:清理注册表
这一步是很多人不敢动的地方,其实只要目标明确,没那么危险。管理员命令行执行regedit,手动定位到以下几个项,右键删除MySQL相关键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\MySQLHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL(如果服务删除后这里还有残项)
不想手动找那么麻烦的话,可以导出删除以下注册表项(谨慎操作,别删错):
reg delete "HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\MySQL" /f我个人的建议是:注册表手动查找删除最稳妥,不要用网上那些“一键清理工具”,容易误伤其他软件。我踩过一次教训,某清理工具把我其他服务的EventLog注册表项也清掉了,导致一个服务日志功能异常。
清理完注册表,再检查清理PATH环境变量。系统属性→环境变量→Path里,把指向MySQL bin目录的条目删掉。
5.3 Linux卸载:比你想的多两步
Linux卸载相对干净,但很多人漏掉了数据目录和日志目录。以Ubuntu为例:
# 停止服务 sudo systemctl stop mysql # 卸载软件包(--purge连同配置文件一起删) sudo apt remove --purge mysql-server mysql-client mysql-common -y # 顺手把可能装了的依赖包也清掉 sudo apt autoremove -y # 删除残留目录 sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql # 确认没有MySQL进程残留 ps aux | grep mysqld注意,/var/lib/mysql就是MySQL的默认数据目录,这一刀下去所有库表文件全没了。如果打算重装后恢复数据,先把整个目录复制出来放好。/etc/mysql是配置文件目录,--purge正常情况下会清理,但手动rm -rf更保险。
CentOS/RHEL系则对应:
sudo systemctl stop mysqld sudo yum remove mysql-server -y sudo rm -rf /var/lib/mysql /etc/my.cnf /etc/my.cnf.d6. 卸载与重装中的高频问题排查
现实世界里,安装和卸载过程中很少有人能一遍过。我把这几年遇到的高频报错整理成一个问题定位表,后面再展开讲两个最磨人的。
| 现象 | 大概率原因 | 处理方法 |
|---|---|---|
| 安装时提示“The service already exists” | 旧服务没删干净 | 管理员cmd执行sc delete mysql(或sc delete MySQL8)后重试 |
mysqld --install报“服务已存在”但sc query查不到 | 服务配置缓存残留 | 重启电脑后再删一次服务 |
| 3306端口被占用,MySQL起不来 | 可能是其他服务占用了端口 | `netstat -ano |
用root登录报Access denied for user 'root'@'localhost' | 密码错误或认证插件不兼容 | 如果是caching_sha2_password连老客户端,考虑改回mysql_native_password |
| Linux首次启动后无临时密码 | 数据目录非空或初始化方式差异 | 检查/var/log/mysqld.log,如没有则手动执行mysqld --initialize-insecure |
| 无法远程连接 | bind-address未改或用户授权仅localhost | 改bind-address后重启,创建远程用户 |
6.1 端口被占用:一抓一个准的定位方法
端口占用在我遇到的故障里排第一。Windows下我常用:
netstat -ano | findstr 3306结果会显示类似TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 12345,最后一列是PID,接着:
tasklist /fi "pid eq 12345"如果发现不是mysqld.exe而是别的进程(比如mysqld-nt.exe来自另一个MySQL实例,或者某个Swoole开发环境里的MySQL),就判断一下能不能结束:
taskkill /pid 12345 /fLinux下则是:
sudo lsof -i :3306 sudo kill -9 <pid>这里额外提醒一个容易忽略的情况:Docker容器也会占用宿主机端口。如果netstat看到3306被占用,但宿主机上没装MySQL,先docker ps查一下是不是有容器在跑。
6.2 MySQL服务启动失败但日志看不懂
Windows下服务启动失败时,最有用的第一手资料是错误日志。MySQL的数据目录下(比如C:\ProgramData\MySQL\MySQL Server 8.0\Data)会生成一个*.err文件,打开看最后几行:
常见的几类错误:
[ERROR] Can't start server: Bind on TCP/IP port: Permission denied:要么端口被占,要么没有权限。[ERROR] Can't open the mysql.plugin table...:数据目录损坏或字符集配置异常,多半是初始化没完成好。解决办法是备份数据后删掉data目录重新初始化。[ERROR] unknown variable 'basedir=D:/mysql...':配置文件里的路径写错了,或者路径里的反斜杠转义问题。Windows下路径用正斜杠/写更省心。
还有可能启动失败后事件查看器(Windows日志→应用程序)里有记录。很多新手卡在这就放弃了,其实点开错误日志读最后五行,比你百度两小时都管用。
6.3 “完全卸载后重装还是失败”的终极兜底方案
如果卸载流程都走完了,注册表也清了,重装还是失败,我最后的兜底手段是:
用系统还原点/虚拟机快照回到安装前状态。这听起来有点像废话,但它确实是效率最高的终局方案。所以我常在团队强调:装MySQL这种需要写服务、写注册表、初始化数据目录的软件之前,先做一个系统还原点或虚拟机快照。这不是小题大做,Windows注册表被搞乱的代价比想象中大得多。
Linux上同理:卸载不干净重装失败,最干净的手段是直接重置/var/lib/mysql目录后重新初始化,而不是反复apt remove再install。
7. 写在最后的一些实操心得
老实说,MySQL安装和卸载这件事,我这些年指导过不少新人,自己也翻过车。我这里总结几条比较个人化的经验,算是个收尾吧。
第一,别怕命令行,Windows下管理员cmd和PowerShell是你排障的基础工具。很多人装MySQL遇到第一个问题就去重装系统,其实就是不敢用命令。sc delete、netstat、mysql -uroot -p,这几个命令翻来覆去就那么几行,用熟之后整个Windows运维的底气就上来了。
第二,不同的安装方式对应不同的排查路径。MSI装的出了问题去“卸载程序”里找修复选项;ZIP装的出问题直接改配置删数据目录重来;直接用系统包管理器装的(apt/yum),升级和卸载都尽量用同一套包管理工具,混着来容易冲突。
第三,每次动数据库之前先备份数据目录。这句话我重复无数次了,Windows的C:\ProgramData\MySQL或Linux的/var/lib/mysql,只要整个目录复制出来放一边,就算后续操作全崩,数据也能救回来。很多人对“备份”这件事没有肌肉记忆,等真正丢了数据才发现来不及。
最后再分享一个小技巧:如果你在Windows上因为端口被占用始终无法启动MySQL,不妨在my.ini里把端口临时改成3307试试。先跑起来再说,回头再排查3306被谁占了。很多时候事情是“先能用,再优化”,非得在一个值上死磕反而浪费时间。
祝大家安装顺利,卸载不愁,重装一遍过。