0

我想连接服务器的 MySql DB(cpanel) 。虽然每次我收到 Messegebox 的消息时都没有错误:无法连接到任何指定的任何 MySql 主机。

输出类型

using MySql.Data.MySqlClient;
        connString = "SERVER = ********;PORT=3306;DATABASE=********;UID=**********;PASSWORD=*********";
        try
        {
            conn = new MySqlConnection();
            conn.ConnectionString = connString;
            conn.Open();
            MessageBox.Show("Server is online");

        }
        catch (MySql.Data.MySqlClient.MySqlException ex)
        { MessageBox.Show(ex.Message);}
4

3 回答 3

0

将您的应用程序连接到远程服务器 MySql Server 的第一步是验证它是否允许外部连接,默认情况下 root 用户被锁定,为了允许本地您可以尝试与 root 用户连接,在 MySql 中键入以下命令:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;
'root': You can change it with your user.
'%': allows all connections, you can limit it typing an IP.

第二步是验证您的 MySql .net 连接器

干杯!

于 2019-03-22T16:48:51.933 回答
0

我会考虑使用 ConnectionStringBuilder。还要注意“使用”的使用。这将确保资源在完成后得到处理。

private MySqlConnectionStringBuilder sConnString = new MySqlConnectionStringBuilder
{
    Server = "",
    UserID = "",
    Password = "",
    Database = ""
};

private void Test(){

    // open connection to db
    using (MySqlConnection conn = new MySqlConnection(sConnString.ToString()))
    {
        using (MySqlCommand cmd = conn.CreateCommand())
        {
            try
            {
                conn.Open();
                cmd.CommandText = "SELECT * FROM foo WHERE OrderID = @OrderID";

                // Add any params
                cmd.Parameters.AddWithValue("@OrderID", "1111");
                cmd.Prepare();
                cmd.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
                return;
            }
        }
    }
}
于 2019-03-22T16:15:59.147 回答
0

如果您尝试从外部连接到 MySQL 服务器,则需要启用外部连接。

请注意,如果您将您的应用程序提供给包含数据库信息的其他人,这是一个安全漏洞。要解决这个问题,您需要创建一个 Web-API。

于 2019-03-22T16:18:09.133 回答