简介:《MySQL安装及使用教程》面向 MySQL 数据库零基础学习者与需要快速上手数据库管理工具的入门读者,围绕 Windows 环境下 MySQL 的安装配置及日常使用展开。资源包共 1 个 docx 文件,约 1.53MB,以图文文档形式组织,便于按章节查阅与跟练。内容覆盖安装包获取与安装过程、环境变量检查、服务启动与关闭测试,以及 Workbench 连接配置、数据库与数据表创建、数据录入和 select、insert、update、delete 等基础 SQL 操作示例,并配有相应界面截图辅助理解。已有 1455 人学习,适合作为课程实验、自学入门或查阅基础语法的轻量参考资料,也可帮助读者梳理 MySQL 从安装到简单增删改查的完整学习路径。
1. MySQL 8.0 装在 Windows 上:真正麻烦的是装完那一下
MySQL 安装这件事,绝大多数人卡住的地方在装完之后那几分钟,而不在「下一步」按钮上。MySQL 数据库服务起没起来、服务名是不是还叫 mysql80、系统 Path 里那行 bin 目录有没有写上,这三件事任意一件出问题,命令行敲 mysql 就是「不是内部或外部命令」,Workbench 点 Test Connection 就是 10061。我在实验室的公用机上见过同一套 MySQL 8.0 被重装三遍,每次装到 Finish 就以为结束了,结果第二天开机服务没自启,连库都进不去。这篇按 Windows + MySQL Installer 这条路径走一遍:下载哪个包、安装向导里哪几个框必须停一下、Path 和服务怎么配、Workbench 建库建表怎么落地、增删改查怎么写不翻车,最后给一套装完就能自查的验证顺序。第一次在 Windows 上装 MySQL 8.0 的人可以照着走,装过但总在环境变量和服务名上反复的人也能对上号。
2. 下载与 Installer 安装:三个必须停一下的输入框
MySQL 在 Windows 上的官方安装方式这几年基本稳定下来了,走的是 MySQL Installer 这条路:一个 msi 安装器负责下载、安装、配置、升级一条龙,Server 本体、Workbench、连接器、示例库都从它里面勾。好处是不用自己去拼 zip 包和解压路径,坏处是向导里有一大段是「一路 next 也能过」的,而恰恰是这几步决定了后面环境变量、服务名、密码策略长什么样。
先把下载路径走通:浏览器打开https://www.mysql.com/downloads/,顶部菜单点 Community,再点下方的 MySQL on Windows,页面里选中 MySQL Installer,进入新页面后拉到最底端,能看到两个安装包,原文选的是第二个。这一步别急着点,两个包的区别值得花三十秒看清楚。
2.1 官网下载路径:离线完整包和在线安装包别选反
页面底部这两个 msi,命名上就能区分开,一个是mysql-installer-community-*.msi,另一个是mysql-installer-web-community-*.msi,后者名字里多一个 web。
| 安装包 | 体积特征 | 安装时的行为 | 适合什么情况 |
|---|---|---|---|
| mysql-installer-community | 明显更大 | 组件已经在本地,Execute 阶段基本不联网 | 网络一般、要给多台机器装、装完还要拷给别人 |
| mysql-installer-web-community | 只有安装器本体 | Execute 阶段按勾选去线上拉组件 | 网络稳定、只装这一台 |
原文走的是第二个,也就是在线安装包,下载快、点开就能装。要注意的是它对网络很敏感,Execute 阶段如果网断了,会在列表里挂一堆红字。我一般的做法是:机器能稳定连外网就用 web 包,图省事;机房的内网机器或者网络时好时坏的笔记本,直接下第一个完整包,一次几百兆换后面不用重来,这笔账划算。
点击下载后会跳到开始下载的页面,直接点页面里的下载入口就行,不需要注册账号,也不需要填什么企业信息,页面上那些登录框跳过即可。
2.2 Setup Type 与组件勾选:装包下载失败到底要不要管
安装器起来之后第一个要停下来看的是 Choosing a Setup Type。默认给的是 Developer Default,会把 Server、Workbench、各种语言的连接器、示例库、文档、甚至 Visual Studio 的运行时一起勾上。对只是想学 SQL 的人来说这个默认值偏重,装完 C 盘少一大截,而且任何一个组件拉取失败都会让整个 Execute 阶段停在半路。
常见做法是选 Custom,只勾两样:
- MySQL Server(版本选 8.0.x,这是服务端本体,必装)
- MySQL Workbench(图形客户端,建库建表、跑语句都靠它)
其他的 Connector、示例数据库 sakila/world、文档、Excel 插件,学语法阶段一律不勾。少勾一个组件,就少一个可能标红的位置。
选完进入 Execute 阶段,安装器会按顺序把每个产品装一遍,进度条下面是一个产品列表,装成功打绿勾,失败标红。这里就是原文那句话的出处——遇到装包下载失败,可以不用管。原因是标红的通常是示例库、文档、附加连接器这类非必需项,只要 MySQL Server 和 MySQL Workbench 这两行是绿勾,服务端和客户端就已经落盘了,功能上不缺东西。判断方法很简单:看列表里这两个名字的状态,是绿的继续往下走,红色的那几行点开看一眼名字,确认不是 Server 就行。
注意:如果标红的是 MySQL Server 本身,就别往下点了,直接退出去换完整离线包重来,硬着头皮 next 只会得到一个没有服务端的空壳。
2.3 密码、服务名、端口:向导里最容易一路回车过去的三个框
接下来是真正决定后面能不能连上的三个输入框,向导在这一页停留时间很短,很多人手一快就过去了。
第一个是 root 账号的密码。MySQL 8.0 安装时会默认启用密码强度插件,策略是 MEDIUM,要求长度至少 8 位,并且同时包含数字、大小写字母和特殊字符。如果在这里图省事填个123456,点 Next 的时候会直接弹ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,装到一半退回去改密码。我一般就在这一步定一个固定格式,比如「大写 + 小写 + 数字 + 符号,长度 12」,记在自己机器的一个文本文件里,别指望记在脑子里。
第二个是 Windows Service Name,默认值就是MySQL80。这个名字后面会反复用到:net start mysql80、net stop mysql80、sc query mysql80,全都认它。默认值不用改,改了也不影响功能,但一定要记住自己改成了什么,否则后面敲命令会一直报「服务名无效」。旁边那个 Start the MySQL Server at System Startup 建议勾上,不然每次开机都要手动起一次服务,第二天打开 Workbench 就是 10061。
第三个是 Port,默认 3306。只有本机已经装了别的 MySQL 实例、或者 3306 被别的程序占了,才需要改成 3307 之类。改了端口,后面 Workbench 建连接和命令行登录都要跟着带-P。
装完之后,别急着开 Workbench,先在管理员权限的命令提示符里确认服务真的存在:
:: 查询 MySQL80 服务的状态,RUNNING 才算起来了 sc query mysql80 :: 如果提示服务不存在,把所有带 mysql 字样的服务列出来找真名 sc query type= service state= all | findstr /i mysqlsc query后面跟的是服务名,输出里 STATE 那一行显示 RUNNING 就说明服务在跑。第二条命令是兜底用的,忘了自己把服务名改成什么的时候,用它在全量服务列表里搜关键字,比在 services.msc 里一行行翻快得多。这两条命令都不需要进 MySQL,纯粹是 Windows 层面的检查,装完第一时间跑一遍,能把「服务没装成功」和「服务装了但没起」两种情况分开。
3. 环境变量与服务:Path 里那行 bin 和 net start mysql80
安装向导走完之后,理论上环境变量已经自动配好了,但实际上「理论上」这三个字在 Windows 上经常不成立。尤其是机器上装过旧版本 MySQL、或者装的时候自定义了安装目录的,Path 里要么没有 MySQL 的 bin,要么留着一条指向已经删掉的旧目录。表现出来的现象很一致:服务在跑,Workbench 能连,但一开 cmd 敲mysql就是「不是内部或外部命令,也不是可运行的程序」。
这一章就干三件事:确认 Path、搞清服务名的用法、用命令行登进去看一眼。
3.1 手动补 Path:三种路径写法与验证命令
先确认mysql.exe到底在哪。默认安装路径是C:\Program Files\MySQL\MySQL Server 8.0\bin,如果安装时改过目录,就得按实际路径来。装的是 8.4 或者 9.x,路径里的版本号段也要跟着换,这一点很多人抄教程抄翻车——教程写 8.0,自己装的是 8.4,路径照抄过去必然无效。
:: 看当前系统能不能找到 mysql,能找到会打印出完整路径 where mysql :: 看 Path 变量里有没有 MySQL 相关目录 echo %PATH% | findstr /i "MySQL"第一条where mysql是最终判据,它直接告诉你当前 cmd 会话里mysql解析到哪个 exe。第二条是查 Path 里有没有这一条,findstr /i表示忽略大小写匹配。两条都空,就说明 Path 确实没配上。
补 Path 的路径是:Win + R 输入sysdm.cpl回车,高级选项卡 → 环境变量 → 下方「系统变量」里选中 Path → 编辑 → 新建 → 粘贴C:\Program Files\MySQL\MySQL Server 8.0\bin→ 一路确定。这里有两个细节值得说:一是要改系统变量而不是用户变量,否则换个账号登录又找不到;二是新建完必须关掉所有已经打开的 cmd 窗口重新开一个,Path 是进程启动时读取的,老窗口不会自己刷新。
还有一种更隐蔽的情况:Path 里配了,但配在了用户变量里,而当前是用管理员身份开的 cmd。管理员提权后的进程环境和普通用户环境不完全一致,偶尔会读不到用户级 Path。遇到这种「明明配了却不生效」的玄学问题,把同一条路径在系统变量里也加一份,基本就解决了。
提示:Path 里不要出现两条指向不同版本 MySQL bin 的路径。谁在前面谁生效,
where mysql会把所有命中的路径按顺序列出来,看到两条不同版本的时候,删掉旧的那条。
3.2 服务名不是固定的:net start / net stop / sc query
服务这块,原文给的两条命令是全篇用得最频繁的:
:: 启动 MySQL 服务,mysql80 是安装时填的服务名 net start mysql80 :: 停止 MySQL 服务 net stop mysql80这两条命令必须在管理员权限的命令提示符里执行,普通 cmd 会报「发生系统错误 5,拒绝访问」。net start后面的参数既可以是服务名 MySQL80,也可以是显示名称,Windows 两个都认。如果服务名里有空格,要用英文双引号包起来,比如net start "MySQL 8.0"。
失败最常见的两种报错要分清楚:
服务名无效—— 名字不对。要么安装时改过服务名,要么压根没装成服务。用上一节那条sc query type= service state= all | findstr /i mysql找真名。发生系统错误 1067,进程意外终止—— 名字对了但服务起不来。这种一般是数据目录损坏或者 my.ini 配置有问题,去安装目录下的Data文件夹看.err结尾的错误日志,最后几十行一般能直接指出原因。
服务的启动类型也顺手确认一下。sc qc mysql80会打印出 START_TYPE,显示 AUTO_START 才是开机自启,显示 DEMAND_START 就是手动启动。装的时候没勾 Start the MySQL Server at System Startup,这里就会是手动,改回来用sc config mysql80 start= auto,注意等号后面必须有一个空格,这是sc命令的老规矩,漏了空格会报参数错误。
3.3 命令行登录与字符集初检
服务起来之后,用 root 账号登录:
:: -u 后面直接跟用户名,-p 后面不要跟密码 mysql -uroot -p-u和用户名之间可以不留空格,-p后面千万不要直接跟密码,比如-p123456,那样密码会明文留在命令历史和屏幕回滚里,而且下次别人按上箭头就能看见。正确做法是只写-p,回车之后在弹出的Enter password:后面输入,输入过程不回显,这是正常的。
登进去之后先跑三条语句,把环境摸清楚:
-- 确认连的是哪个版本,避免连到机器上残留的旧实例 SELECT VERSION(); -- 列出所有数据库,后面建好的 db_2 应该出现在这里 SHOW DATABASES; -- 看服务端的字符集配置,中文乱不乱码主要看这几项 SHOW VARIABLES LIKE 'character_set_%';SELECT VERSION()在同时装过 5.7 和 8.0 的机器上特别有用,能立刻确认自己连的是哪一个。SHOW DATABASES里默认会有information_schema、mysql、performance_schema、sys四个系统库,不要手动去改它们。字符集那一条会列出一串变量,重点看character_set_server和character_set_database,MySQL 8.0 默认应该是utf8mb4,如果看到latin1或者utf8,后面存中文迟早出问题,建库的时候必须显式指定 utf8mb4。
退出用exit或者quit,\q也行,三个是等价的。
4. Workbench 落地:从建连接、建库到 student 表增删改查
命令行能登进去,说明服务端这一层已经通了。但真要做课程设计、写个小系统、给别人演示表结构,纯命令行还是不够直观,Workbench 就是补这一块的:可视化建库建表、网格里直接录数据、SQL 编辑器带补全和高亮。它的安装包在 Installer 里已经跟着 Server 一起装好了,开始菜单里搜 MySQL Workbench 就能开。
这一章按「建连接 → 建库 → 建表 → 录数据 → 写四条语句」的顺序走完,每一段都给出对应的 SQL 等价写法,习惯敲命令的人可以直接跳过界面部分。
4.1 新建连接与 Test Connection 的三种报错
打开 Workbench 首页是 Welcome to MySQL Workbench,中间一片是 MySQL Connections,点旁边那个加号新建连接,弹出的窗口要填的东西不多,但每一项都对得上后面能不能连上:
| 字段 | 填什么 | 说明 |
|---|---|---|
| Connection Name | 自定义,比如 local-80 | 只是显示名,随便起,但建议把端口或版本带进去 |
| Hostname | 127.0.0.1 | 本机就用回环地址,别填 localhost,某些环境会解析到 IPv6 上导致连不上 |
| Port | 3306 | 安装时改过端口这里必须跟着改 |
| Username | root | 安装时创建的管理员账号 |
| Password | 点 Store in Vault 后输入 | 存起来省得每次输,公用机别勾 |
| Default Schema | 留空 | 建库之后再回来指到 db_2 |
填完先点 Test Connection,这一步不通过就别急着 OK。三种报错按出现频率排:
Can't connect to MySQL server on '127.0.0.1' (10061)—— 服务没起或者端口不对。回上一章net start mysql80。Access denied for user 'root'@'localhost' (using password: YES)—— 密码错了。注意这里是 localhost,走的是本机 socket/命名管道,和 127.0.0.1 走 TCP 是两条不同路径,偶尔会出现一个能连一个不能。Authentication plugin 'caching_sha2_password' cannot be loaded—— 客户端版本比服务端老,不认 8.0 的默认认证插件。用 Installer 一起装的 Workbench 不会遇到,单独下过一个旧版 Workbench 的才会。
Test Connection 通过了就点 OK,首页会多出一个连接卡片,双击进入操作界面。
4.2 建库 db_2 与建表 student:字符集和主键
进入 Workbench 之后左侧是 Navigator,上半部分是 Schemas 列表,下半部分是 Information。建库有两个入口:工具栏上那个 Create a new schema 的图标,或者直接在 Schemas 区域右键 Create Schema。名字按原文就叫db_2,字符集选utf8mb4,排序规则选utf8mb4_0900_ai_ci,点 Apply,会弹一个 SQL 预览窗口,再点一次 Apply 才真正执行。
这一步的 SQL 等价写法是:
-- 建库,显式指定 utf8mb4,避免用默认值踩到 latin1 CREATE DATABASE IF NOT EXISTS db_2 DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_0900_ai_ci; -- 切到目标库,后面所有建表语句都落在这里 USE db_2; -- 建学生表,四个字段对应原文的 idstudent / name / age / addr CREATE TABLE student ( idstudent INT NOT NULL COMMENT '学号,主键', name VARCHAR(20) NOT NULL COMMENT '姓名', age INT DEFAULT NULL COMMENT '年龄', addr VARCHAR(50) DEFAULT NULL COMMENT '地址', PRIMARY KEY (idstudent) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;几个参数值得说清楚。utf8mb4是 MySQL 8.0 的真·UTF-8,一个字符最多占 4 字节,能存 emoji 和生僻字;老写法utf8实际是utf8mb3,最多 3 字节,存不进去就变问号或者直接报错,这是中文乱码最常见的一个来源。utf8mb4_0900_ai_ci是 8.0 新增的排序规则,ai表示重音不敏感,ci表示大小写不敏感,做普通业务够用。ENGINE = InnoDB是 8.0 的默认引擎,支持事务和行锁,不用改。idstudent上的PRIMARY KEY保证学号唯一,NOT NULL保证不会插进去一条没学号的记录——主键本身隐含 NOT NULL,写出来是为了读代码的人一眼看清。
在图形界面里建表对应的是:右键 Tables → Create Table,中间填表名 student,下方表格里一行一行加字段,idstudent那一行的 PK 和 NN 都勾上,name勾 NN,age和addr只勾 NN 不勾,最后一列 Default 留空。填完点 Apply,同样会先弹 SQL 预览,扫一眼没问题再确认。
注意:建表时如果字符集下拉框默认停在
utf8mb3或者latin1,一定要手动改掉。表建完再改字符集需要 ALTER TABLE,字段多的时候很麻烦。
4.3 Select Rows 直接录数据与 Apply 的含义
表建好之后,Navigator 里展开 db_2 → Tables,能看到 student。右键它,选 Select Rows - Limit 1000,右侧会出一块结果网格,表头就是四个字段名,最下面一行是空的,可以直接点进去填值。填完一行按 Tab 会往右走,全部填完点右下角的 Apply,会弹出一个窗显示即将执行的 INSERT 语句,确认后再点 Apply 才写进数据库。
这一步的等价语句很直白:
-- 插入一条学生记录,列名和值一一对应 INSERT INTO student (idstudent, name, age, addr) VALUES (3, '赵六', 21, '城东街道');网格里录数据和敲 INSERT 的差别在于:网格模式默认把整张表的数据拉出来编辑,点 Apply 的时候是对每一行变化生成一条语句;如果表里有几万条数据,这个操作会非常慢,甚至把 Workbench 卡住。所以 Select Rows 适合小表验证、演示、临时改两个值,真往业务表里灌数据还是要走 INSERT 或者 LOAD DATA。另外 Limit 1000 这个后缀就是字面意思,只取前 1000 行,看不到的不代表不存在,别以为表是空的。
4.4 四条语句:select、insert、update、delete 的写法与参数
Workbench 里点工具栏的 SQL 加号可以开一个查询标签页,也可以直接点菜单 File → New Query Tab,写语句的地方就有了。下面四条是最小可用集合,每条都给了注释。
-- 查:全表查,字段多的时候别用 *,写清楚要哪几列 SELECT * FROM student; SELECT idstudent, name FROM student WHERE age > 20; -- 增:列名个数必须和 values 个数一致,顺序也要对得上 INSERT INTO student (idstudent, name, age, addr) VALUES (4, '孙七', 22, '城西街道'); -- 改:where 条件决定改哪几行,漏了就是全表 UPDATE student SET age = 19 WHERE idstudent = 3; -- 删:同样是 where 决定删哪几行,漏了就是清空 DELETE FROM student WHERE idstudent = 3;SELECT *在调试时方便,但正式写法应该把列名写全,一是减少不必要的数据传输,二是表结构后面加字段时不会把业务代码带崩。WHERE age > 20里的比较运算符除了>,还有>=、<、=、!=、BETWEEN ... AND ...、IN (...)、LIKE '张%',够覆盖日常查询。
INSERT的列名列表可以省略,省略时 values 必须按建表时的字段顺序给全,包括那些允许 NULL 的字段。这个写法极其脆弱,表结构一改就报错,不建议用。
UPDATE的完整语法在原文里给得比较全,展开是这样:
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1 = expr1 [, col_name2 = expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count];LOW_PRIORITY让这条更新排队等别的读操作做完再执行,MyISAM 时代有用,InnoDB 下基本不用。IGNORE表示碰到唯一键冲突时不中断、跳过冲突行继续,属于危险开关,默认别加。ORDER BY配合LIMIT可以做「按某种顺序改前 N 条」,比如ORDER BY idstudent LIMIT 10,不写 ORDER BY 只写 LIMIT 时,改哪 10 条是不确定的。WHERE是唯一能限制影响范围的东西,这一条后面还会单独拎出来讲。
DELETE FROM tb (where)这个写法里,括号是语法说明用的,实际敲的时候不带括号。想清空整张表又要保留表结构,用TRUNCATE TABLE student比DELETE FROM student快得多,区别是 TRUNCATE 不能回滚、不触发 DELETE 触发器、自增计数器会重置。
Workbench 里执行语句有个快捷键 Ctrl + Enter,执行光标所在那一条;Ctrl + Shift + Enter 执行全部。结果默认出在下方 Result Grid,旁边还有 Output 面板,报错信息都在那一栏里,红字第一行通常就是错误码和原因,别只看 Result Grid 是空的就以为语句没生效。
5. 常见问题排查:五条踩坑记录,每条都能对上号
下面这五条是我在不同机器上反复遇到的,按「现象 → 原因 → 解决」记一遍,出问题的时候直接对号入座比从头推理快。
5.1 现象:cmd 里敲 mysql 提示「不是内部或外部命令」
原因基本只有三种:Path 里根本没加 MySQL 的 bin 目录、加的是旧版本残留路径、或者加了但当前 cmd 窗口是在改 Path 之前打开的。
解决顺序是先用where mysql看能不能解析到,解析不到就去系统变量 Path 里核对那行C:\Program Files\MySQL\MySQL Server 8.0\bin存不存在、版本号段对不对,改完关掉所有 cmd 重开一个再试。还有一种情况是加了但排在别的 MySQL 路径后面,where mysql会列出多条,把旧的那条删掉或者把新的挪到前面。
5.2 现象:net start mysql80 报「服务名无效」
原因有两种:安装时把服务名改成了别的,或者装的时候压根没走到配置服务那一步(Execute 阶段中断过)。
先去services.msc里按名称排序找 MySQL 开头的服务,或者用sc query type= service state= all | findstr /i mysql全量搜一遍,找到真实名字之后再用net start 真实名字。如果一条都搜不到,说明服务确实没装,回 Installer 重新走一遍 Server 的配置步骤,不用整个卸载重来,Installer 里有 Reconfigure 入口。
5.3 现象:安装向导报 ERROR 1819 密码策略不满足
原因就是密码太简单,没达到默认的 MEDIUM 策略要求:长度 8 位以上,同时包含数字、大小写字母、特殊字符。
解决时再设计一个符合规则的密码即可,比如「首字母大写 + 单词 + 两位数字 + 一个符号」。不建议为了图方便去改密码策略,改法是在配置阶段把 validate_password 组件卸掉或者把 policy 调成 LOW,但这样一来整个实例的密码强度都没了保障,后面接真实项目容易出问题。
5.4 现象:Installer 的 Execute 阶段卡在某个产品下载失败
原因是在线安装包需要现场联网拉组件,网络抖动、代理拦截、临时目录权限不足都会让某一项下载中断。
先看标红的产品名,如果是示例库、文档、Connector 这类,直接跳过不影响使用,Server 和 Workbench 装完就能干活。如果反复失败,换第一条那个完整离线包重新装,或者把 Installer 以管理员身份重启一次,让它有权限清自己的临时缓存目录。已经装成功的组件不会重复装,重来一次成本不高。
5.5 现象:update 或 delete 执行完,整张表的数据全变了
原因就一个字:where 写漏了,或者 where 条件写成了永远为真的表达式,比如WHERE idstudent = idstudent。
这条是血泪经验。我现在执行任何 UPDATE 或 DELETE 之前,都会先把同样的 where 条件套进 SELECT 跑一遍,看一眼返回行数和内容对不对,确认无误再把 SELECT 改成 UPDATE/DELETE。行数超过预期就停下来重新想条件。另外在 Workbench 里默认是自动提交模式,语句一执行就落盘,没有后悔药;正式环境里应该显式开事务,START TRANSACTION;执行完先SELECT验证,没问题再COMMIT;,有问题直接ROLLBACK;。这个习惯养成了,能省掉很多半夜被叫起来恢复数据的场面。
6. 装完怎么验证:三条命令加一张自查表
装完 MySQL 最容易犯的错是「看到 Workbench 能打开就以为好了」。Workbench 打开只是客户端起来了,跟服务端通不通是两回事。我一般按下面三步走一遍,全程两三分钟,能把绝大多数隐患提前暴露出来。
第一步,用管理员权限开一个命令提示符,跑服务状态:
:: 服务必须是 RUNNING,START_TYPE 应该是 AUTO_START sc query mysql80 sc qc mysql80第一条看当前状态,STATE 里显示 RUNNING 才算在跑。第二条看启动类型,AUTO_START表示开机自启,显示DEMAND_START就说明装的时候没勾自启,用sc config mysql80 start= auto补上。这两条都不需要进 MySQL,纯粹是 Windows 层面的确认。
第二步,命令行登录并确认版本:
:: 登录之后能进到 mysql> 提示符就说明认证链路通了 mysql -uroot -p-- 版本、当前库、字符集三件套 SELECT VERSION(), DATABASE(), @@character_set_server;VERSION()应该返回 8.0.x,DATABASE()在没USE之前是 NULL,@@character_set_server应该是 utf8mb4。三项都对,说明服务端配置没问题。
第三步,把建库建表这条链路完整跑一遍再删掉,验证写权限:
-- 建一个临时库,建表插一条,查完就删,全程不到十秒 CREATE DATABASE verify_tmp DEFAULT CHARACTER SET utf8mb4; USE verify_tmp; CREATE TABLE t (id INT PRIMARY KEY, v VARCHAR(10)); INSERT INTO t VALUES (1, '测试'); SELECT * FROM t; DROP DATABASE verify_tmp;这条链路走通,意味着建库、建表、写入、查询、删除五类权限都正常,中文也没乱码(测试两个字能原样查出来就说明字符集对了)。DROP DATABASE收尾,不留垃圾。
懒得记命令的话,对着这张表逐项打勾也行:
| 检查项 | 期望结果 | 不通过时先看哪 |
|---|---|---|
| 服务状态 | RUNNING | 服务名、数据目录、.err 日志 |
| 启动类型 | AUTO_START | sc config 补自启 |
| where mysql | 输出一条 bin 下的路径 | 系统变量 Path |
| mysql -uroot -p | 进入 mysql> 提示符 | 密码、端口、服务是否在跑 |
| SELECT VERSION() | 8.0.x | 是否连到了旧实例 |
| character_set_server | utf8mb4 | 建库时是否显式指定 |
| Workbench Test Connection | Successfully made the connection | 10061 查服务,1045 查密码 |
| 建表插入中文 | 查询结果原样显示 | 库/表/连接三处字符集 |
从那以后我每次装完 MySQL,不管多急,都会先开一个管理员 cmd 敲net start mysql80,再mysql -uroot -p进去看一眼SELECT VERSION()和字符集,最后在 Workbench 里点一次 Test Connection。整套动作两分钟,省掉的是后面半小时的猜和重装。上面这些命令、参数和建表语句我都对着同一份笔记整理过,照着敲一遍基本就能把环境立起来。希望帮到你。
本文还有配套的精品资源,点击获取