CVE-2024-21176 是Oracle官方披露的安全漏洞(具体细节未公开),影响MySQL 5.7及更低版本。MySQL 5.7的生命周期已于2023年10月31日结束,官方不再提供免费安全补丁。即使5.7.44是5.7系列的最终版本,也未包含对此漏洞的修复。由于官方未提供针对5.7.44的直接补丁,只能通过更新到mysql8来进行修复。
本文记录一次windows安装mysql8.4.4的过程,先在mysql官网上下载mysql8.4.4的windows安装包(https://downloads.mysql.com/archives/community/),这里我选择使用zip格式的压缩包文件。解压文件到D盘,得到目录D:\mysql-8.4.4-winx64,在D:\mysql-8.4.4-winx64中创建data和log目录。
mkdir "D:\mysql-8.4.4-winx64\data_8_4"
mkdir "D:\mysql-8.4.4-winx64\log"
icacls "D:\mysql-8.4.4-winx64\data_8_4" /grant Everyone:F /T
icacls "D:\mysql-8.4.4-winx64\log" /grant Everyone:F /T
在D:\mysql-8.4.4-winx64中新建my.ini,编辑文件内容。
[mysqld]
basedir=D:/mysql-8.4.4-winx64
datadir=D:/mysql-8.4.4-winx64/data_8_4
port=3307
server-id=2
bind-address=0.0.0.0
# 正确的认证策略设置(使用逗号分隔)
authentication_policy = 'caching_sha2_password,,'
max_connections=200
character-set-server=utf8mb4
default-storage-engine=INNODB
CMD进入D:\mysql-8.4.4-winx64\bin目录下,执行以下命令
.\mysqld --defaults-file=D:\mysql-8.4.4-winx64\my.ini --initialize --console
如果一切正常,会得到以下回显
2025-06-13T03:15:54.664650Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2025-06-13T03:15:54.668011Z 0 [System] [MY-013169] [Server] D:\mysql-8.4.4-winx64\bin\mysqld.exe (mysqld 8.4.4) initializing of server in progress as process 4172
2025-06-13T03:15:54.690289Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-06-13T03:15:55.053355Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-06-13T03:15:56.784160Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: e_zdxfwjb0A_
2025-06-13T03:15:58.748588Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
如果报错提示缺少DLL文件,去微软官网下载VC++2015的版本库进行安装(https://www.microsoft.com/en-us/download/details.aspx?id=53587)
若还是无法显示回显,则需要输出报错日志,根据日志实际情况进行调整。
.\mysqld --defaults-file=D:\mysql-8.4.4-winx64\my.ini --initialize --console --log-error=D:\mysql-8.4.4-winx64\log\init.log
数据库初始化成功后,创建MySQL84服务并进行启动。
.\mysqld --install MySQL84 --defaults-file="D:\mysql-8.4.4-winx64\my.ini"
net start MySQL84
启动成功的话,命令行会回显
MySQL84 服务正在启动 .
MySQL84 服务已经启动成功。
启动成功后即可使用mysql进行连接操作
.\mysql -P3307 -uroot -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.4.4
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
然后就可以在不影响原有的MySQL5.7.44版本的情况下愉快的使用MySQL8.4.4了。
没有评论