环境准备 + Spring Boot Hello World + 第一次调用DeepSeek API(1)
在安装mysql数据库的时候就遇到了不少问题
问题一:Get-ChildItem 访问被拒绝
现象
执行递归解锁命令时,PowerShell 报错:
Get-ChildItem : 对路径“D:\Tools\mysql\data_bak\Data\#innodb_redo”的访问被拒绝。
类别:PermissionDenied
原因分析
- #innodb_redo、#innodb_temp、performance_schema、sys 是 InnoDB 内部目录,Windows 会限制对这些目录的访问权限
- Get-ChildItem -Recurse 在进入目录时就已失败,过滤条件来不及生效
- 这是 PowerShell 的设计行为,不是 MySQL 的 Bug
解决方案
⚠️ 不推荐:类似以下方式依然会报错(过滤条件无法提前生效):
# 还是会报错!因为 Get-ChildItem 先遍历目录再筛选
Get-ChildItem "D:\Tools\mysql" -Recurse -File | Where-Object { ... } | Unblock-File
✅ 推荐方案:层级处理,从非 data 路径单独处理
# 方案 1:排除 data 目录(最推荐)
Get-ChildItem "D:\Tools\mysql" -Exclude data_bak | Get-ChildItem -Recurse -File | Unblock-File
# 方案 2:只解锁可执行文件
Get-ChildItem "D:\Tools\mysql\bin" -Recurse -File | Unblock-File
# 方案 3:忽略目录误误(最省事)
Get-ChildItem "D:\Tools\mysql" -Recurse -File -ErrorAction SilentlyContinue | Unblock-File
问题二:net start MySQL80 提示服务名无效
现象
执行启动服务命令时,系统报错:
PS D:\Tools\mysql\bin> net start MySQL80
服务名无效。
原因分析
- net start MySQL80 的前提是 Windows 服务列表中已存在名为 MySQL80 的服务
- 当前服务尚未安装,所以提示服务名无效
- 可用 Get-Service MySQL80 验证,返回“找不到服务”即确认
解决方案
执行以下命令安装服务:
cd D:\Tools\mysql\bin
.\mysqld --install MySQL80
✅ 成功后会显示:
Service successfully installed.
再次启动服务:
net start MySQL80
问题三:mysqld --install 提示权限不足
现象
执行服务安装命令时,报错:
Install/Remove of the Service Denied!
原因分析
- mysqld --install 需要修改 Windows 服务注册表,必须以管理员身份运行
- 普通 PowerShell 窗口没有足够权限,会静默失败或报错
- 同理,sc delete 和 net start 也需管理员权限
解决方案
步骤①:关闭当前 PowerShell 窗口
步骤②:开始菜单 → 输入 PowerShell → 右键 → 以管理员身份运行
步骤③:再次执行安装命令
cd D:\Tools\mysql\bin
.\mysqld --install MySQL80
✅ 如提示服务已存在,先删除再安装:
sc delete MySQL80
.\mysqld --install MySQL80
net start MySQL80
完整安装流程总结
Step 1:文件解锁
解压后首先解除文件锁定(从其他计算机下载的文件 Windows 会标记为“附来”):
Get-ChildItem "D:\Tools\mysql\bin" -Recurse -File | Unblock-File
Step 2:准备配置文件
在 D:\Tools\mysql\my.ini 创建配置文件(路径用 / 不用 \ ):
[mysqld]
basedir=D:/Tools/mysql
datadir=D:/Tools/mysql/data
port=3306
server-id=1
character-set-server=utf8mb4
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Step 3:初始化数据目录
以管理员身份执行(只做一次):
cd D:\Tools\mysql\bin
.\mysqld --initialize-insecure --user=mysql
Step 4:安装并启动服务
.\mysqld --install MySQL80
net start MySQL80
Step 5:验证连接
.\mysql -u root
✅ 看到 mysql> 提示符即表示安装启动完全成功!
附录:常见问题速查表
|
问题 |
解决要点 |
|
PowerShell 访问 data 目录被拒绝 |
用 -Exclude data_bak 排除数据目录,或指定 bin 目录单独处理 |
|
net start 提示服务名无效 |
先用 mysqld --install MySQL80 安装服务 |
|
mysqld --install 权限不足 |
以管理员身份运行 PowerShell |
|
初始化失败 |
确认 my.ini 存在且路径用正斜杠 / |
|
启动后无法连接 |
检查端口占用、防火墙、root 密码 |
建议:生产环境不要使用 ZIP 解压版,建议用 MySQL Installer 官方安装包。ZIP 版适合开发测试环境。
更多推荐


所有评论(0)