Lin*_*rth 4 swift vapor vapor-fluent fluent-mysql
我想用 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)
Run Code Online (Sandbox Code Playgroud)
这工作得很好。但是,由于我需要将我的模型添加到迁移配置中,因此我还需要添加:
var migrations = MigrationConfig()
migrations.add(model: Posts.self, database: .mysql)
services.register(migrations)
Run Code Online (Sandbox Code Playgroud)
这次运行应用程序时,我看到一条错误消息:
不安全的连接不支持完全身份验证。
经过一番研究,看来,这个错误可以通过更改密码逻辑来克服caching_sha2_password到mysql_native_password。
但是,这给我留下了错误消息:
无法识别的基本数据包。
我该如何解决?
从 MySQL 8 开始,如果您想在localhost(不安全的连接)上使用它,那么您需要禁用 MySQL 传输层安全性。使用unverifiedTLS了transport在MySQLDatabaseConfig初始化。
您的MySQLDatabaseConfig初始化程序应如下所示:
let config = MySQLDatabaseConfig(
hostname: "127.0.0.1",
port: 3306,
username: "dev",
password: "",
database: "test",
transport: MySQLTransportConfig.unverifiedTLS
)
Run Code Online (Sandbox Code Playgroud)
使用此配置应该可以正常工作。
| 归档时间: |
|
| 查看次数: |
367 次 |
| 最近记录: |