我想与服务器的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);}
答案 0 :(得分: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;
}
}
}
}
答案 1 :(得分:0)
如果您尝试从外部连接到MySQL服务器,则需要启用外部连接。
请注意,如果您向包含数据库信息的其他人提供应用程序,则这是一个安全漏洞。要解决此问题,您需要创建一个Web-API。
答案 2 :(得分: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连接器
干杯!