Připojení k MySQL pomocí .NET Connector
Příklad kódu pro připojení k MySQL přes .NET Connector a řešení chyby 'SELECT command denied' pomocí Use Procedure Bodies=false v connection string.
Následující příklad kódu lze použít pro získání přístupu k databázi MySQL prostřednictvím MySQL .NET Connectoru:
Ovladač MySQL si můžete sami nasadit na svůj webhosting, lze jej stáhnout z webových stránek MySQL.
using MySql.Data.MySqlClient;
MySqlConnection con = new MySqlConnection();
string mysql = "Server=[server];Database=[database];User=[brugernavn];pwd=[password]";
con.ConnectionString = mysql;
con.Open();
MySqlCommand cmd = con.CreateCommand();
cmd.CommandText = "SELECT * FROM TestTabel";
cmd.Connection = con;
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Response.Write(reader.GetValue(0).ToString());
}
cmd.Dispose();
con.Close();
Chyba: SELECT command denied to user 'user'@'x' for table 'proc'
Příčinou je chyba v ovladači MySQL. Zdokumentováno zde:
http://bugs.mysql.com/bug.php?id=10640
http://bugs.mysql.com/bug.php?id=16703
http://bugs.mysql.com/bug.php?id=14836
Proces se pokouší provést příkaz SELECT na tabulce proc. Tato tabulka 'proc' je systémová tabulka, která uchovává procedury všech uživatelů na serveru MySQL. Na sdíleném hostingu je přístup k této tabulce problém, protože přístup by umožnil zákazníkům vidět procedury ostatních.
Možným řešením problému je změnit svůj connection string tak, aby obsahoval "Use Procedure Bodies=false".
Příklad:
"server=localhost; user id=dbuser; password=password; database=dbname; Use Procedure Bodies=false;"
Článek z kategorie podpory: ASP & ASP.NET