【问题标题】:Reading from the stream has failed - MySqlException从流中读取失败 - MySqlException
【发布时间】:2014-12-26 11:37:36
【问题描述】:

我正在尝试使用以下代码片段打开与 MySql 数据库的连接:

string connectionString = "Server=ip_number;Database=database_name;Uid=uid;Password=password";
MySqlConnection connection;
connection = new MySqlConnection(connectionString);
connection.Open();

这是我得到的例外:

我正在使用最新的 mysql 连接器 (downloaded from here)。我错过了什么?

提前致谢,

【问题讨论】:

  • 您是否检查过连接字符串是否有效?在您的代码中,您有 database_name、uid 和密码。您是否省略了实际值,这些是访问数据库所需的值吗?
  • 是的,它们是实际值。我可以使用连接字符串中的值通过 phpMyAdmin 连接到 db。出于安全原因,我更换了它们。
  • 我也有同样的问题。更模糊的是,我的应用程序运行了几个月没有任何问题。没有改变任何东西,几天前它开始给我这个错误,从那以后就一直这样......
  • 我的案例是关于网络权限的。尝试通过 telnet 连接到您的数据库 ip 和端口后与您的网络管理员交谈。

标签: c# mysql .net database-connection connection-string


【解决方案1】:

解决方案 1:如果不需要 SSL。由于是 SSL 引起的,我们可以通过在连接字符串后附加“SslMode=None”来关闭 SSL。

解决方案 2:如果需要 SSL,则服务器身份很重要,需要进行验证。服务器需要互联网连接来进行证书验证。请注意,加密 API 不会为每个进程更新 CTL。 CTL 在操作系统级别维护。一旦您将服务器连接到互联网并与服务器建立 SSL 数据库连接,CTL 将自动更新。然后您可以断开互联网连接。再次注意 CTL 有其到期日期,之后 Windows 需要再次更新它。这可能会在几个月后发生。

解决方案 3:如果需要 SSL,但服务器身份并不重要。在这种情况下,通常 SSL 仅用于加密网络传输。我们可以关闭 CTL 更新:

  • 按 Win+R 打开“运行”对话框键入“gpedit.msc”(不带 引号)并按 Enter 在“本地组策略编辑器”中,展开 “计算机配置”,展开“管理模板”,展开 “系统”,展开“网络通讯管理”,然后点击 “互联网通信设置”。在详细信息面板中,双击 “关闭自动根证书更新”,点击启用, 然后单击确定。此更改将立即生效,无需 重新启动。

https://blog.csdn.net/fancyf/article/details/78295964清晰地解释了根本原因和解决方案。

【讨论】:

【解决方案2】:

你可以试试这个:

连接到服务器:

string connectionString= "datasource=localhost;port=3306;username=uid;password=1234"

使用“MySqL-Methodes”来插入/更新/选择...例如:

    public string pathselectDB = "select *from try.data;";
    public string pathinsertDB = "INSERT INTO `try`.`data`";

        string constrnig = pathtoDB;
        string Query = pathinsertDB +"(`value1`, `value2`) values('"2"','3',');";



        MySqlConnection conDataBase = new MySqlConnection(constrnig);
        MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase);
        MySqlDataReader myReader;

这只是一个例子......我希望这能解决你的问题。

您可以在 MySql-Editor 中设置您的用户名和密码!如果您需要帮助,只需在此下方设置一个推荐即可。

【讨论】:

  • 这个答案并没有告诉我我做错了什么。我尝试将端口添加到连接字符串,但没有任何变化。
  • 我认为您的连接字符串是问题所在。您可以像我给出的答案一样尝试一下。你已经有了一个 MySql-Database 不是吗?你安装了 MySql-Editor 吗?有很多选项可以将程序与数据库连接起来。在以下链接中,您可以查看 Sql-Database 的所有方法:link
猜你喜欢
  • 2015-06-10
  • 2019-09-10
  • 2015-07-23
  • 1970-01-01
  • 2020-04-09
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多