MySQL & Vapor 3:无法识别的基本数据包,不支持完整身份验证
MySQL & Vapor 3: unrecognized basic packet, full auth not supported
我想用 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
初始值设定项中对 transport
使用 unverifiedTLS
。
您的 MySQLDatabaseConfig
初始值设定项应如下所示:
let config = MySQLDatabaseConfig(
hostname: "127.0.0.1",
port: 3306,
username: "dev",
password: "",
database: "test",
transport: MySQLTransportConfig.unverifiedTLS
)
此配置应该可以正常工作。
我想用 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
初始值设定项中对 transport
使用 unverifiedTLS
。
您的 MySQLDatabaseConfig
初始值设定项应如下所示:
let config = MySQLDatabaseConfig(
hostname: "127.0.0.1",
port: 3306,
username: "dev",
password: "",
database: "test",
transport: MySQLTransportConfig.unverifiedTLS
)
此配置应该可以正常工作。