一、启动前的核心配置(必须做!)
步骤 1:解压并整理目录
-
将下载的
mysql-5.7.38-winx64.zip(下载地址mysql国内镜像下载地址)解压到无中文、无空格 的目录(关键!避免启动报错),比如:plaintext
D:\mysql-5.7.38-winx64
- 在解压根目录下,手动新建两个目录:
data:用于存放 MySQL 数据文件(初始化时自动生成内容);- 无需新建
my.ini(下一步手动创建)。
步骤 2:创建核心配置文件 my.ini
在解压根目录(如 D:\mysql-5.7.38-winx64)下,新建一个文本文档,重命名为 my.ini(注意:后缀是 .ini 不是 .txt,需显示文件扩展名),粘贴以下配置内容(务必修改路径为你的解压路径):
ini
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录(改成你的解压路径!)
basedir=D:\mysql-5.7.38-winx64
# 设置mysql数据库的数据存放目录(改成你的解压路径下的data!)
datadir=D:\mysql-5.7.38-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数
max_connect_errors=10
# 服务端使用的字符集
character-set-server=utf8mb4
# 创建新表时使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用"mysql_native_password"插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时使用的端口
port=3306
default-character-set=utf8mb4
⚠️ 关键提醒:basedir 和 datadir 必须和你的解压路径一致,路径分隔符用 \ 或 /,不要用反斜杠转义(比如不要写 D:\\mysql...)。
步骤 3:初始化 MySQL(生成临时密码 / 无密码)
MySQL 5.7 免安装版必须先初始化才能启动,步骤如下:
-
以管理员身份打开命令提示符(CMD) (关键!普通权限会报错):
- 按下 Win 键,搜索「CMD」,右键选择「以管理员身份运行」。
-
切换到 MySQL 的
bin目录(替换成你的路径):bash
运行
cd /d D:\mysql-5.7.38-winx64\bin
- 执行初始化命令(二选一):
-
方案 1(推荐):生成临时密码 (安全,生产 / 开发都建议用):
bash
-
运行
mysqld --initialize --console
执行后,控制台会输出一串日志,找到包含 root@localhost: 的行,后面的字符串就是临时密码 (比如:root@localhost: abcd123*,注意密码可能包含特殊字符,记下来!)。示例输出:
plaintext
2025-12-18T08:00:00.000000Z 1 [Note] A temporary password is generated for root@localhost: x9k8#7s2p5
-
方案 2:无密码初始化 (仅测试环境用,不安全):
bash
运行
-
mysqld --initialize-insecure --console执行后无临时密码,后续登录直接空密码即可。
二、启动 MySQL(两种方式)
方式 1:临时启动(控制台运行,关闭 CMD 则服务停止)
-
保持管理员 CMD 窗口在
bin目录,执行启动命令:bash
运行
mysqld --console
- 启动成功的标志:
- 控制台输出
ready for connections字样; - 无
ERROR级别的报错(警告Warning可忽略)。
- 控制台输出
方式 2:安装为 Windows 服务(推荐,开机自启 / 后台运行)
-
管理员 CMD 窗口在
bin目录,执行安装服务命令(服务名可自定义,比如MySQL57):bash
运行
mysqld --install MySQL57
成功提示:Service successfully installed.
- 启动服务: bash
运行
net start MySQL57
成功提示:MySQL57 服务正在启动... MySQL57 服务已经启动成功。
- 停止服务(如需): bash
运行
net stop MySQL57
- 卸载服务(如需): bash
运行
sc delete MySQL57
三、验证启动 & 修改临时密码
步骤 1:登录 MySQL
-
新开一个 CMD 窗口(无需管理员,切换到
bin目录):bash
运行
cd /d D:\mysql-5.7.38-winx64\bin
- 登录 root 用户(替换临时密码): bash
运行
mysql -uroot -p
- 按回车后,输入初始化时生成的临时密码(无密码则直接按回车),回车即可登录。
步骤 2:修改 root 密码(必须做!)
登录后执行以下 SQL 修改密码(替换 123456 为你想要的密码):
sql
-- 修改root密码(5.7版本专用)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
-- 刷新权限
FLUSH PRIVILEGES;
执行成功后,退出重新登录即可使用新密码。
四、常见问题解决
-
初始化报错:Can't create directory 'D:\mysql...\data'
- 原因:CMD 不是管理员权限,或路径有中文 / 空格;
- 解决:以管理员身份运行 CMD,检查路径是否符合要求。
-
启动服务报错:服务无法启动,错误 1067
- 原因:my.ini 配置错误(路径写错、字符集错误),或 data 目录已有旧数据;
- 解决:删除 data 目录下所有文件,重新执行初始化命令,检查 my.ini 路径。
-
端口 3306 被占用
- 查看占用进程:
netstat -ano | findstr 3306; - 结束进程:
taskkill /f /pid 进程号,或修改 my.ini 中的port为 3307 等。
- 查看占用进程:
总结
- 核心前提 :MySQL 5.7 免安装版启动前必须配置
my.ini并初始化,缺一不可; - 关键步骤:解压(无中文路径)→ 建 my.ini → 管理员 CMD 初始化 → 启动(临时 / 服务)→ 修改密码;
- 推荐方式:安装为 Windows 服务(MySQL57),方便后台运行和开机自启。