ySQL 9.6 Windows 详细安装与坑点修复教程

MySQL 9.6 Windows 详细安装与坑点修复教程

本文旨在提供一份完整的 MySQL 9.6 安装指南,并重点针对在 Windows 环境下由于“中文主机名”和“文件编码”导致的初始化失败问题提供深度解决方案。


第一部分:MySQL 9.6 标准安装步骤

1. 下载与运行安装程序

  • 从 MySQL 官网下载 MySQL Installer
  • 运行安装程序,选择 Server onlyFull 安装模式。

2. 配置服务器

  • Type and Networking:选择 Development Computer,端口默认为 3306
  • Authentication Method:建议选择 Use Strong Password Encryption
  • Accounts and Roles:设置 root 密码并添加需要的用户。
  • Windows Service:设置服务名称(如 MySQL96),勾选 Start the MySQL Server at System Startup

3. 应用配置 (Apply Configuration)

  • 点击 Execute 等待安装程序自动完成写入配置文件、更新防火墙、调整服务和初始化数据库。

4. 配置环境变量

  • 将 MySQL 的 bin 目录(默认:C:\Program Files\MySQL\MySQL Server 9.6\bin)添加到系统的 Path 环境变量中,以便在任意终端直接使用 mysql 命令。

第二部分:安装过程中遇到的核心问题

在执行到 “Initializing Database” 步骤时,许多用户会遇到如下报错:

在这里插入图片描述

问题 1:中文主机名导致的乱码报错

现象:日志显示无法找到文件,且文件名出现乱码。

mysqld: File '.\鏄ⅶ妗愬饯楦?bin.index' not found (OS errno 2 - No such file or directory) The designated data directory C:\ProgramData\MySQL\MySQL Server 9.6\Data\ is unusable. Database initialization failed. 

原因:MySQL 默认使用 Windows 计算机名作为日志文件前缀。若计算机名为中文(如 是梧桐彤鸭),在编码转换时会产生乱码,导致 mysqld 无法创建索引文件。

问题 2:配置文件编码 (BOM) 冲突

现象:手动修改 my.ini 后,初始化报错。

mysqld: [ERROR] Found option without preceding group in config file ... at line 1. 

原因:使用 PowerShell 或记事本保存文件时,默认添加了 UTF-8 BOM 标记。MySQL 无法识别文件头的字节顺序标记,认为配置文件格式非法。

问题 3:权限与文件锁定

现象:尝试删除损坏的 Data 目录时提示“访问被拒绝”。
原因C:\ProgramData 是受保护目录,且之前失败的 mysqld 进程可能仍在后台持有文件句柄。


第三部分:解决方案与深度修复

1. 彻底清理环境

在修复前,必须杀死所有残留进程并清理服务:

以管理员身份运行 PowerShell:

stop-process-name "mysqld"-ErrorAction SilentlyContinue sc.exe delete MySQL96 # 如果服务已创建但损坏,先删除

2. 修复 my.ini 编码与路径

不要使用普通记事本修改,建议使用以下方式确保 无 BOM 的 UTF-8 编码。

  • 修改点:将所有包含中文主机名的路径改为纯英文。
    • general_log_file="mysql-general.log"
    • slow_query_log_file="mysql-slow.log"
    • log-error="mysql-error.err"
    • log-bin="mysql-bin"

3. 自动化修复脚本 (推荐)

创建一个 fix_mysql.ps1 脚本,复制以下内容并运行,它可以自动处理编码和清理逻辑:

$myIniPath = "C:\ProgramData\MySQL\MySQL Server 9.6\my.ini"$dataPath = "C:\ProgramData\MySQL\MySQL Server 9.6\Data"$mysqlExe = "C:\Program Files\MySQL\MySQL Server 9.6\bin\mysqld.exe"# 1. 以无 BOM 格式重写 my.ini 并修复路径$content = Get-Content$myIniPath-Raw $content = $content-replace'general_log_file=".*?"','general_log_file="mysql-general.log"'$content = $content-replace'slow_query_log_file=".*?"','slow_query_log_file="mysql-slow.log"'$content = $content-replace'log-error=".*?"','log-error="mysql-error.err"'$content = $content-replace'log-bin=".*?"','log-bin="mysql-bin"'$Utf8NoBom = New-Object System.Text.UTF8Encoding($false)[System.IO.File]::WriteAllText($myIniPath,$content,$Utf8NoBom)# 2. 强制清理损坏的 Data 目录if(Test-Path$dataPath){Remove-Item-Recurse -Force $dataPath}# 3. 手动触发初始化 & $mysqlExe--defaults-file=$myIniPath--console --initialize-insecure=on --lower-case-table-names=1 

4. 启动与验证

初始化成功后(日志显示 MySQL Server Initialization - end),手动启动服务:

net start MySQL96 mysql -u root -p # 初始密码为空,直接回车

结语:MySQL 在 Windows 上的安装细节较多,尤其是对非 ASCII 字符的支持仍有改进空间。通过手动干预配置文件和强制初始化,可以有效解决 99% 的安装失败问题。

Read more

实战教程:Leaflet+SpringBoot 实现地图任意点位点击查看时间功能

实战教程:Leaflet+SpringBoot 实现地图任意点位点击查看时间功能

目录 前言 一、需求解析 1、地图展示 2、时区和时间的关系 3、经纬度和时区的关系 二、应用实现 1、经纬度和时区求解 2、Leaflet 实现地图点击 3、前后台交互 三、成果展示 1、亚洲地区 2、欧洲地区 3、拉美地区 4、澳洲地区 四、总结 前言         在数字化、全球化的当下,地理位置与时间信息的结合应用,已经渗透到出行导航、跨境调度、物流追踪、国际业务展示等众多场景。用户不再满足于单纯查看地图点位,更需要点击地图任意位置,即可快速获取当地真实时间,比如针对国外新闻的展示,对于我国的用户需要知晓事件发生的时间,一般有两个时间的概念,即北京时间和当地时间。北京时间是跟我们同一时区,让我们清楚的知道在我们的时间时刻中,在何时发生。而全球是个分为多个时区的模式,

By Ne0inhk
Flutter 组件 aws_lambda_dart_runtime_ns 的鸿蒙化适配实战 - 实现 OpenHarmony 分布式端高性能云端协同、冷启动指纹预检与工业级边缘计算核方案

Flutter 组件 aws_lambda_dart_runtime_ns 的鸿蒙化适配实战 - 实现 OpenHarmony 分布式端高性能云端协同、冷启动指纹预检与工业级边缘计算核方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 aws_lambda_dart_runtime_ns 的鸿蒙化适配实战 - 实现 OpenHarmony 分布式端高性能云端协同、冷启动指纹预检与工业级边缘计算核方案 前言 在鸿蒙(OpenHarmony)生态的分布式边缘计算、强云端一体化架构或者是对冷启动耗时有极其严苛要求的 0308 批次企业级应用中。“云原生函数的执行效率与边缘执行环境的指纹预检维度”是衡量整个系统算力调度稳定性的最终质量门禁。面对包含每秒数百万次调用的 Lambda 函数集群、动态变化的 AWS 环境变量、甚至是由于跨域转发产生的 0308 批次请求转发波次。如果仅仅依靠简单的“HTTP 转发”或者是干瘪的裸进程运行。不仅会导致在处理高并发云请求时让系统如同在逻辑废墟中盲人摸象。更会因为运行时环境不兼容。令应用在关键业务触发时瞬间陷入无响应盲区。 我们需要一种“逻辑严密、运行时自适应”的算子调度艺术。 aws_lambda_dart_

By Ne0inhk
SpringBoot + Vue 前后端分离项目实战:权限 + 工作流 + 报表

SpringBoot + Vue 前后端分离项目实战:权限 + 工作流 + 报表

✨道路是曲折的,前途是光明的! 📝 专注C/C++、Linux编程与人工智能领域,分享学习笔记! 🌟 感谢各位小伙伴的长期陪伴与支持,欢迎文末添加好友一起交流! 📚 目录 * 前言 * 一、项目背景与技术选型 * 二、系统架构设计 * 三、权限管理模块 * 四、工作流引擎集成 * 五、报表系统实现 * 六、核心代码实现 * 七、部署与运维 * 八、总结 前言 前后端分离架构已成为企业级应用开发的主流选择。本文将通过一个完整的企业管理系统实战项目,详细介绍如何使用 SpringBoot + Vue 技术栈,实现权限管理、工作流引擎和报表系统三大核心功能。 项目特色 * 前后端分离:RESTful API 设计,便于扩展和维护 * RBAC权限模型:细粒度的权限控制体系 * Flowable工作流:可视化流程设计与执行 * 动态报表:灵活配置的数据可视化方案 一、项目背景与技术选型 1.

By Ne0inhk
MySQL 数据类型核心指南:选型、实战与避坑

MySQL 数据类型核心指南:选型、实战与避坑

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. MySQL 数据类型分类总览 * 二. 数值类型:精准匹配数字范围与精度 * 2.1 整数类型(BIT/TINYINT/INT/BIGINT) * 2.1.1 TINYINT 类型测试 * 2.1.2 BIT 类型测试 * 2.1.3 INT/BIGINT 对比测试 * 2.2 小数类型(FLOAT/DOUBLE/DECIMAL) * 2.2.

By Ne0inhk