我想连接服务器的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);}
如果您尝试从外部连接到MySQL服务器,则需要启用外部连接。
请注意,如果您将应用程序提供给包含数据库信息的其他人,则这是一个安全漏洞。要解决这个问题,您需要创建一个Web-API。
连接到您的应用程序到远程服务器的第一步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连接器
干杯!
我会研究使用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;
}
}
}
}