MySQL 从流中读取失败

Posted

技术标签:

【中文标题】MySQL 从流中读取失败【英文标题】:MySQL Reading from stream failed 【发布时间】:2015-06-10 05:33:01 【问题描述】:

我间歇性地遇到以下错误。它是通过在 mysql 服务器设置中使用“跳过名称解析”选项来解决的。

但是,根据网上的许多建议,使用 127.0.0.1 应该可以解决问题。但这也无济于事,您能否建议我一个解决方法或一个 SQL 命令,通过它我可以检查“跳过名称解析”选项。

Error 1: 0
Authentication to host '127.0.0.1' for user 'root' using method 'mysql_native_password' failed with message: Reading from the stream has failed.

Stack Trace:
at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.AuthenticationFailed(Exception ex)
at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.ReadPacket()
at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate(Boolean reset)
at MySql.Data.MySqlClient.NativeDriver.Authenticate(String authMethod, Boolean reset)
at MySql.Data.MySqlClient.NativeDriver.Open()
at MySql.Data.MySqlClient.Driver.Open()
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
at MySql.Data.MySqlClient.MySqlPool.GetConnection()
at MySql.Data.MySqlClient.MySqlConnection.Open()

【问题讨论】:

只是为了彻底:您是否已经从命令提示符登录到您的 mysql 数据库,只是为了查看您的用户名/密码是否正常并且数据库本身是否健康? 是的,这个错误是随机出现的。 我们在生产上也面临同样的问题。请问有哪位可以帮忙吗? 【参考方案1】:

这是更新到 MySQL Server 8.+ 时发生的常见错误。 默认情况下,MySQL 8 使用caching_sha2_password,它是 mysql_native_password 的升级身份验证插件。

解决此问题的一种方法是专门将用户密码的插件设置为caching_sha2_password

CREATE USER 'sha2user'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password'

更新 MySQL 服务器以接受 mysql_native_passwords。

[mysqld]
default_authentication_plugin=mysql_native_password

【讨论】:

以上是关于MySQL 从流中读取失败的主要内容,如果未能解决你的问题,请参考以下文章

连续从流中读取?

iOS - 如何从流中读取音频并播放音频

NAudio在改变音高而不是文件时寻找一种从流中读取的方法

用于从流中读取多个 protobuf 消息的 python 示例

java如何直接从流中读取excel的文件内容?Stream

如何从流中读取 CSV 文件并在写入时处理每一行?