gpt4 book ai didi

swift - 不支持 MySQL & Vapor 3 : unrecognized basic packet, 完整身份验证

转载 作者:可可西里 更新时间:2023-11-01 00:54:17 25 4
gpt4 key购买 nike

我想用 Vapor 3 应用程序连接我机器上的 MySQL 数据库。
我当前的 configure.swift 文件如下所示:

try services.register(FluentMySQLProvider())

...

let mysqlConfig = MySQLDatabaseConfig(
username: "dev",
password: "",
database: "test"
)
let mysql = MySQLDatabase(config: mysqlConfig)

var databases = DatabasesConfig()
databases.add(database: mysql, as: .mysql)
services.register(databases)

这很好用。但是,由于我需要将我的模型添加到迁移配置中,因此我还需要添加:

var migrations = MigrationConfig()
migrations.add(model: Posts.self, database: .mysql)
services.register(migrations)

这次运行应用程序时,我看到一条错误消息:

Full authentication not supported over insecure connections.

经过一些研究,似乎可以通过将密码逻辑从 caching_sha2_password 更改为 mysql_native_password 来克服此错误。
但是,这给我留下了错误提示:

Unrecognized basic packet.

我该如何解决这个问题?

最佳答案

从 MySQL 8 开始,如果你想在 localhost(不安全连接)上使用它,那么你需要禁用 MySQL 传输层安全性。在 MySQLDatabaseConfig 初始化程序中使用 unverifiedTLS 进行传输

您的 MySQLDatabaseConfig 初始值设定项应如下所示:

let config = MySQLDatabaseConfig(
hostname: "127.0.0.1",
port: 3306,
username: "dev",
password: "",
database: "test",
transport: MySQLTransportConfig.unverifiedTLS
)

在此配置下它应该可以正常工作。

关于swift - 不支持 MySQL & Vapor 3 : unrecognized basic packet, 完整身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54304666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com