本文是通过zip文件的方式,在Windows上安装MySQL 8
1.下载MySQL免安装zip文件
镜像地址可在
MySQL-8.0
文件夹内搜索winx64.zip
,下载最新版本
- 官方下载页面地址:https://dev.mysql.com/downloads/mysql/
- 清华TUNA镜像地址:https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/
- 华为云镜像地址:https://repo.huaweicloud.com/mysql/Downloads/
- 阿里云镜像地址:https://mirrors.aliyun.com/mysql
- 腾讯云镜像地址:https://mirrors.cloud.tencent.com/mysql/downloads/
2.安装MySQL
2.1 解压缩
解压缩安装包到任意目录,并创建配置文件my.ini
路径不要包含中文
配置文件的内容为
datadir设置的目录必须为空或者不存在
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\Program Files\mysql-8.0.29-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\MySqlData
# 允许最大连接数
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]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
2.2 配置环境变量
如需在同一个系统内运行多个MySQL服务,请跳过此步骤,并将命令行cd至bin目录下来执行后续操作
将解压文件夹下的bin路径添加到系统变量的Path值中,方便执行后续操作
2.3 初始化数据目录
本步将会使用配置文件中datadir项设置的目录进行数据的初始化,此目录将会用于存储数据文件,请确保目录磁盘空间充足
以管理员权限打开命令提示符,执行命令
mysqld --initialize --console #初始化数据目录,并生成root账号的密码
#mysqld --initialize-insecure --console #初始化数据目录,不会生成root密码
使用--initialize会自动生成临时密码,使用--initialize-insecure则密码为空
执行成功会可看到生成了root密码,将其复制出来保存
此时可以看到在datadir所配置的位置生成了文件夹,文件夹中包含了初始化的数据文件
MySQL服务端的Log在默认情况下也位于此文件夹,以.err为后缀,如果服务发生错误,但未在此找到err文件,请确认程序是否具有此文件夹的读写权限
2.4 配置root用户
2.4.1 在命令行启动MySQL服务端
mysqld --console
MySQL服务端的默认配置文件位置读取优先级见下表(my.ini优先于my.cnf),如需指定其他配置文件,需增加参数:
--defaults-file="C:\Program Files\mysql-8.0.29-winx64\my2.ini"
文件名 | 备注 |
---|---|
%WINDIR%\my.ini, %WINDIR%\my.cnf | 变量可使用命令echo %WINDIR% 查看,默认为C:\WINDOWS |
C:\my.ini, C:\my.cnf | 无 |
BASEDIR\my.ini, BASEDIR\my.cnf | BASEDIR为mysqld程序所在bin文件夹的上级目录 |
2.4.2 再打开一个新的命令行窗口,执行以下命令,使用客户端登录MySQL
mysql u root -p
Enter password: ************ #输入初始化数据目录时,控制台打印的root密码
如果上一步使用了--initialize-insecure参数,则执行的登录命令不需要增加
-p
参数
2.4.3 修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql';
此处的'mysql'可修改为自定义密码
2.4.4 允许从外部连接root用户
USE mysql;
UPDATE user SET host='%' WHERE user ='root';
FLUSH PRIVILEGES; #刷新权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
2.4.5 关闭MySQL
直接在运行MySQL服务端的窗口使用Ctrl+C命令即可,也可使用以下命令关闭
mysqladmin -u root -p shutdown
3.配置系统服务
上一步其实已经完成了MySQL的安装,但只能通过命令行进行启动,和停止和连接,为了方便使用,可将服务端添加至Windows服务,使其可以随Windows启动及关闭。
3.1 安装MySQL服务
mysqld --install [服务名]
[服务名]为可选项,在不填写时的默认名为MySQL
在需安装多个MySQL服务时,可用不同的名字区分,并在服务名后增加参数:
--defaults-file="C:\Program Files\mysql-8.0.29-winx64\my2.ini"
来指定其他服务的配置文件,避免混乱
3.2 MySQL服务管理
[服务名]在未定义时为mysql(不区分大小写)
启动MySQL服务
在尝试启动 MySQL 服务之前,请确保运行该服务的操作系统用户(可通过sc qc [服务名]
命令中的SERVICE_START_NAME查看)对用户变量%TEMP%和%TMP%以及%TMPDIR%(如有)对应的文件夹有读写权限,该变量对于部分用户的默认路径为:(系统用户)C:\Windows\Temp
、(NetworkService)C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp
、(LocalService)C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp
net start [服务名]
停止MySQL服务
net stop [服务名]
移除MySQL服务
移除前需先停止MySQL服务sc delete [服务名]
或
mysqld --remove [服务名]