本文最后更新于 2026-02-24,文章内容可能已经过时。

下载MySQL zip包,解压到指定目录后创建data文件夹并配置my.ini指定路径,以管理员身份运行mysqld --initialize --console获取临时密码,执行mysqld --install安装服务并启动,使用临时密码登录后立即通过ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'修改root密码,完成安装。

一、下载MySQL 8.0.45 Zip包

  1. 访问MySQL官方下载页面:https://downloads.mysql.com/archives/community/
  2. 选择版本:在"Product Version"下拉框中选择MySQL 8.0(建议选择8.0.45版本)
  3. 选择系统:在"Operating System"下拉框中选择"Microsoft Windows"
  4. 选择安装包:在下方列表中点击"Windows (x86, 64-bit), ZIP Archive"对应的Download按钮
  5. 点击下载后,可能会跳转至登录提示页,直接点击"No thanks, just start my download"开始下载

二、解压安装包

  1. 将下载的mysql-8.0.45-winx64.zip解压到您想要安装的目录(建议不要放在系统盘,如D盘)
  2. 解压后得到文件夹:mysql-8.0.45-winx64(假设解压到D:\)

三、配置MySQL

1. 创建data文件夹

  1. 进入解压后的目录:D:\mysql
  2. 新建一个名为data的文件夹(用于存储数据库数据)

2. 创建my.ini配置文件

  1. 在D:\mysql目录下,新建一个文本文档
  2. 将文件名改为my.ini(注意:需先开启文件扩展名显示,然后修改后缀为.ini)
  3. 用记事本打开my.ini,粘贴以下配置内容:
[mysqld]
# 设置3306端口
port=3306
# 设置MySQL的安装目录
basedir=D:\mysql
# 设置MySQL数据库的数据的存放目录
datadir=D:\mysql\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
#default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4

注意:请将basedir和datadir路径替换为您实际的安装路径,路径中的\需要转义为\\(在Windows路径中,反斜杠需要双写)

四、初始化MySQL

  1. 以管理员身份打开命令提示符(CMD)

  2. 切换到MySQL的bin目录:

    cd D:\mysql\bin
    
  3. 执行初始化命令:

    mysqld --initialize --console
    

    注意:此命令会生成一个临时密码(在控制台输出中),请记录下来,用于首次登录

五、安装MySQL服务

  1. 在命令提示符中,继续执行:

    mysqld --install mysql
    

    如果提示"Service successfully installed",表示服务安装成功

六、启动MySQL服务

  1. 在命令提示符中,执行:

    net start mysql
    

    如果显示"mysql服务正在启动 ."
    mysql服务已启动成功。",表示服务启动成功

七、配置环境变量

  1. 右键"此电脑" → "属性" → "高级系统设置" → "环境变量"

  2. 在"系统变量"中找到"Path",点击"编辑"

  3. 点击"新建",添加MySQL的bin目录路径:

    #D:\mysql\bin
    MYSQL_HOME=D:\mysql
    %MYSQL_HOME%\bin
    
  4. 依次点击"确定"保存设置

八、验证安装

  1. 按下Win+R,输入cmd打开命令提示符

  2. 输入以下命令:

    mysql -u root -p
    
  3. 系统会提示输入密码,输入您在初始化时记录的临时密码

  4. 成功登录后,输入以下命令验证:

    SHOW DATABASES;
    

    如果显示information_schema, mysql, performance_schema, sys等数据库,表示安装成功

九、设置root密码(重要)

  1. 登录成功后,设置新密码:

    #首次修改密码使用
    ALTER USER 'root'@'localhost' IDENTIFIED BY '您的新密码';
    FLUSH PRIVILEGES;
    
    CREATE USER 'root'@'%' IDENTIFIED BY '您的新密码';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

    重要提示:MySQL 8.0 默认启用密码过期策略,首次登录后必须先重置密码才能执行其他命令。请先使用初始临时密码登录,再执行上述密码重置命令。

    建议密码包含大小写字母、数字和特殊字符,长度至少8位

    注意:使用的 'root'@'%' 与 MySQL 实例中实际的用户主机不匹配。MySQL 8.0 的 root 用户通常在 'root'@'localhost',而不是 'root'@'%'。如果需要远程访问,应使用 ALTER USER 'root'@'%' IDENTIFIED BY '您的新密码';,但首次登录应使用 'root'@'localhost'。

常见问题解决

1. 服务无法启动

  • 检查my.ini中的路径是否正确
  • 确保没有其他MySQL服务在运行(检查服务列表:services.msc)
  • 如果之前安装过MySQL,彻底卸载并清理残留文件

2. 初始化后找不到临时密码

  • 在MySQL安装目录的data文件夹下,查看以.err结尾的日志文件
  • 打开D:\mysql\data*.err,搜索"temporary password"

3. 端口3306被占用

  • 检查是否有其他MySQL实例在运行
  • 使用命令netstat -ano | findstr :3306查看占用端口的进程
  • 如果不需要,可以停止占用端口的进程

注意事项

  1. 安装路径不要包含中文字符
  2. 确保以管理员身份运行命令提示符
  3. 初始化后会生成临时密码,请务必记录
  4. 首次登录后请立即修改root密码
  5. 如果遇到权限问题,可以尝试关闭SELinux(Windows系统不需要此步骤)

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+--------------------------+
| Variable_name            | Value                    |
+--------------------------+--------------------------+
| character_set_client     | utf8mb4                  |
| character_set_connection | utf8mb4                  |
| character_set_database   | utf8mb4                  |
| character_set_filesystem | binary                   |
| character_set_results    | utf8mb4                  |
| character_set_server     | utf8mb4                  |
| character_set_system     | utf8mb3                  |
| character_sets_dir       | D:\mysql\share\charsets\ |
+--------------------------+--------------------------+
8 rows in set, 1 warning (0.00 sec)

mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8mb4_0900_ai_ci |
| collation_database   | utf8mb4_0900_ai_ci |
| collation_server     | utf8mb4_0900_ai_ci |
+----------------------+--------------------+
3 rows in set, 1 warning (0.00 sec)