在 windows 上部署免安装版本的 MySQL Community Server 8.4.8 LTS
简介
在 windows 上全新部署 mysql-8.4.8-winx64,并把 mysql-8.4.8-winx64 注册成 windows 服务。
下载
官方下载地址: https://dev.mysql.com/downloads/mysql/ 。
在Select Version下拉框里选择 8.4.8 LTS 。
下载完成后,解压缩到D:/software/DevTools/MySQL/mysql-8.4.8-winx64 。
部署
- 先配置 my.ini
在D:/software/DevTools/MySQL/mysql-8.4.8-winx64/目录下添加 my.ini 文件。
[mysql]
# 设置 mysql 客户端默认字符集
default-character-set=utf8mb4
[mysqld]
# 设置 3306 端口
port = 3306
# 设置 mysql 的安装目录
basedir=D:/software/DevTools/MySQL/mysql-8.4.8-winx64
# 设置 mysql 数据库的数据的存放目录
datadir=D:/software/DevTools/MySQL/mysql-8.4.8-winx64/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为 8 比特编码的 latin1 字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 日志相关设置
## 错误日志文件路径
#log-error = D:/software/DevTools/MySQL/mysql-8.4.8-winx64/logs/error.log
## 常规查询日志文件路径
general_log_file = D:/software/DevTools/MySQL/mysql-8.4.8-winx64/logs/general.log
## 启用常规查询日志
general_log = 1
## 慢查询日志文件路径
slow_query_log_file = D:/software/DevTools/MySQL/mysql-8.4.8-winx64/logs/slow.log
## 启用慢查询日志
slow_query_log = 1
## 慢查询阈值(秒)
long_query_time = 2
- 创建 logs 目录
使用管理员身份打开cmd。
md "D:/software/DevTools/MySQL/mysql-8.4.8-winx64/logs"
- 初始化 data 目录
由于是全新安装,data目录里没有内容,需要初始化。
"D:\software\DevTools\MySQL\mysql-8.4.8-winx64\bin\mysqld.exe" --defaults-file="D:\software\DevTools\MySQL\mysql-8.4.8-winx64\my.ini" --initialize-insecure
执行命令后,可以看到 D:/software/DevTools/MySQL/mysql-8.4.8-winx64/ 目录下,多了一个有内容的 data 目录。
- 注册服务
cd D:\software\DevTools\MySQL\mysql-8.4.8-winx64\bin
# 注册服务,服务名设为MySQL848(8.4.8的缩写,便于识别)。最好使用绝对路径下的 mysqld.exe 。担心有环境变量里的路径配置,导致使用了旧版本的 mysqld.exe。
"D:\software\DevTools\MySQL\mysql-8.4.8-winx64\bin\mysqld.exe" --install MySQL848 --defaults-file="D:\software\DevTools\MySQL\mysql-8.4.8-winx64\my.ini"
--install:注册 Windows 服务的核心参数;
MySQL848:自定义的服务名称(可任意命名,建议和版本关联);
--defaults-file:指定 MySQL 的配置文件路径(必须是绝对路径)。
- 启动服务
net start MySQL848
- 停止服务
net stop MySQL848
- 注销服务
# 先停止服务
net stop MySQL848
# 注销服务
"D:\software\DevTools\MySQL\mysql-8.4.8-winx64\bin\mysqld.exe" --remove MySQL848
- 修改本地 root 账户的密码
由于使用的 --initialize-insecure 参数初始化的 data 目录,所以创建的 root 账户是没有密码的。
# 免密码登录MySQL
"D:\software\DevTools\MySQL\mysql-8.4.8-winx64\bin\mysql.exe" -uroot
# 切换数据库
use mysql;
# 查看用户数据
select host,user,plugin,authentication_string from `user`;
# 修改 root 用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '!QAZ2wsx';
# Query OK, 0 rows affected (0.02 sec) 。注意返回结果中的 0 rows affected ,也是代表修改密码成功了。
# 刷新权限(使修改生效)
FLUSH PRIVILEGES;
# 退出当前MySQL会话
exit;
# 使用新密码重新登录
"D:\software\DevTools\MySQL\mysql-8.4.8-winx64\bin\mysql.exe" -uroot -p!QAZ2wsx
# 登录成功后,执行命令确认账户和版本
SELECT USER(), VERSION();
- 新增 root 远程账户
密码与本地的 root 账户一致。mysql会自动识别到是本地root登录,还是远程root登录。
-- 1. 创建root远程账户并设置密码
CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY '!QAZ2wsx';
-- 2. 赋予和本地root相同的权限(全部权限)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 3. 刷新权限
FLUSH PRIVILEGES;

浙公网安备 33010602011771号