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 从流中读取失败的主要内容,如果未能解决你的问题,请参考以下文章
用于从流中读取多个 protobuf 消息的 python 示例