从流中读取失败 - MySqlException

时间:2014-10-30 12:20:13

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

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

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

以下是我得到的例外情况:

enter image description here

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

提前致谢,

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

答案 1 :(得分:0)

愿你试试这个:

与服务器的连接:

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

使用“MySqL-Methodes”来INSERT / UPDATE / SELECT ......如:

    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中设置用户名和密码!如果你需要帮助,那就在这个下面做个推荐。