mysql如何在Windows上安装_mysql安装教程与步骤

7次阅读

推荐windows下直接使用mysql官方zip解压版而非msi安装版,因其可避免初始密码丢失、认证插件错配(如caching_sha2_password导致客户端连接失败)等问题;需手动配置my.ini(basedir、datadir、default_authentication_plugin等关键项),以管理员身份运行cmd执行mysqld –initialize生成临时密码并mysqld install注册服务,随后net start mysql启动,首次登录后立即用alter user切换为mysql_native_password插件并修改密码,确保本地及tcp连接(127.0.0.1)可用。

mysql如何在Windows上安装_mysql安装教程与步骤

直接装解压版最省事,别碰安装版

windows 上装 MySQL,推荐用官方提供的 ZIP 压缩包(即“解压版”),而不是 MSI 安装程序。原因很实际:mysqld --initialize 生成的初始密码、default_authentication_plugin=mysql_native_password 的强制设置、服务注册逻辑——这些在 MSI 安装器里常被隐藏或默认错配,尤其 MySQL 8.0+ 版本,极易导致 navicat、DBeaver 或 Python 的 pymysql 连不上,报错 Authentication plugin 'caching_sha2_password' cannot be loaded

实操建议:

  • https://www.php.cn/link/06d86297d6e28d4637d60c86c2a2f5b6,拉到页面底部选 Windows (x86, 64-bit), ZIP Archive(不是上面那个 2MB 的在线安装器)
  • 下载后解压到不含中文、空格、特殊符号的路径,例如 C:mysql-8.0.33-winx64
  • 跳过所有注册登录页,点左下角 No thanks, just start my download.

my.ini 配置必须手写,且三处路径不能错

解压后根目录下新建 my.ini,内容不是复制粘贴就完事——basedirdatadirport 这三项一旦填错,后续所有命令都会失败,且错误提示极其模糊(比如 Can't start server: Bind on TCP/IP port 或直接静默退出)。

关键配置项说明与避坑点:

  • basedir:必须是 MySQL 解压后的**完整绝对路径**,反斜杠要双写,如 basedir=C:mysql-8.0.33-winx64
  • datadir:必须是**已存在且为空的文件夹**,不能和 basedir 同目录;建议单独建 C:mysql-data 并提前创建好
  • default_authentication_plugin=mysql_native_password:MySQL 8.0 默认改用 caching_sha2_password,但多数旧客户端不支持,这行不加,root 密码初始化成功也登不进去
  • character-set-server=utf8mb4:别写 utf8(MySQL 里那是阉割版,不支持 emoji),应写 utf8mb4;同时配套加 collation-server=utf8mb4_0900_ai_ci

初始化和注册服务必须用管理员 CMD,顺序不能乱

以管理员身份运行 CMD,cd 进入 bin 目录后,两步缺一不可,且顺序固定:

  • 先执行 mysqld --initialize --console:生成 datadir 下的数据文件,并在控制台末尾输出 root 临时密码(形如 A temporary password is generated for root@localhost: iQs%7xKp9!Lm),务必复制保存——它只显示一次,关窗就丢
  • 再执行 mysqld install:把 MySQL 注册为 Windows 服务(服务名默认为 MySQL);如果报错 Failed to install service,大概率是上一步没成功,或当前已有同名服务残留(可用 sc query MySQL 检查)
  • 启动服务:net start mysql;若失败,用 mysqld --console 直接前台运行看报错细节,比查 Windows 事件日志快得多

首次登录后立刻改密并验证连接方式

用临时密码登录:mysql -u root -p,回车后粘贴密码。进库第一件事不是建表,而是立刻改密并确认认证插件:

  • 执行 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPass123!';
  • 再执行 select user, host, plugin FROM mysql.user WHERE user = 'root';,确认 plugin 列值为 mysql_native_password
  • 退出后,用新密码测试本地连接:mysql -u root -p;再换非 localhost 方式测试(如 mysql -h 127.0.0.1 -u root -p),因为 localhost 走 socket,127.0.0.1 才走 TCP,这才是你以后写代码真正用的方式

最容易被忽略的是:Windows 下服务启动后,默认只监听 127.0.0.1,不监听 0.0.0.0;如需远程访问,必须在 my.ini[mysqld] 段加 bind-address=0.0.0.0 并开放 Windows 防火墙端口——但这属于生产环境配置,新手本地开发千万别开。

text=ZqhQzanResources