Mysql 8.0.26 服务启动时出现‘--ssl=off’错误

Mysql 8.0.26 服务启动时出现‘--ssl=off’错误

我在mysqld.service状态说明中看到了一个奇怪的错误......

The syntax '--ssl=off' is deprecated and will be removed in a future release. Please use --tls-version=invalid instead.

问题是我已经skip_ssl在中禁用了 SSL /etc/my.cnf,并且我没有看到在中定义与 SSL 相关的任何变量/etc/my.cnf.d/*。我也已经检查过/etc/systemd/system/mysqld.service.d/override.conf,我唯一设置的是LimitNOFILE

--ssl=off设置是命令行启动变量,那么这个错误可能来自哪里?除了 之外,还有其他新方法可以禁用 SSL 吗skip_ssl

我使用的是 Rockly Linux 8 和 MySQL 8.0.26。


相关文档(包括弃用说明)可在此处找到:https://dev.mysql.com/doc/refman/8.0/en/server-options.html

答案1

我最终在文档中发现,格式skip_ssl实际上与命令行中的变量相同,因此错误消息的歧义导致了我的困惑。cnf--ssl

解决这个问题的方法是替换skip_ssltls_version='',因为前者从 MySQL 8.0.26 开始已被弃用。

这导致状态中出现了许多与 ssl 相关的新错误,因此我会在解决这些问题后发布所有我能发布的说明,希望这有助于减轻任何困惑并节省您的一些时间。


关于使用时出现的新错误tls_version=''...

[Warning] ... [Server] Failed to initialize TLS for channel: mysql_main. See below for the description of exact issue.
[Warning] ... [Server] Failed to set up SSL because of the following SSL library error: TLS version is invalid
[Warning] ... [Server] Plugin mysqlx reported: 'Failed at SSL configuration: "SSL context is not usable without certificate and private key"'

有一个在 Oracle 上打开错误报告概述了这种行为,并表达了我的观点。

答案2

该选项的功能--tls-version=''现已在 MySQL 8.0.31 中修复:

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-31.html

已弃用的 --ssl=off 服务器选项的替代方法是禁用加密连接,但该选项无法按文档所述或弃用警告中所述的方式工作。将 tls_version 系统变量设置为空值 (tls_version='') 现在可以正确实现此目的。(Bug #106459、Bug #33858646)

相关内容