Simply.com is available in english

Pripojenie k MySQL s .NET Connector

Príklad kódu na pripojenie k MySQL cez .NET Connector a riešenie chyby 'SELECT command denied' pomocou Use Procedure Bodies=false v connection stringu.

Nasledujúci príklad kódu možno použiť na získanie prístupu k MySQL databáze prostredníctvom MySQL .NET Connectora:

MySQL ovládač si môžete na svoj webhosting nasadiť sami, stiahnuť si ho môžete z webovej stránky 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'

Príčinou je chyba v ovládači MySQL. Je zdokumentovaná tu:
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 sa pokúša vykonať príkaz SELECT na tabuľke proc. Táto tabuľka 'proc' je systémová tabuľka, ktorá uchováva procedúry všetkých používateľov servera MySQL. Pri zdieľanom hostingu predstavuje prístup k tejto tabuľke problém, pretože prístup by zákazníkom umožnil vidieť procedúry ostatných.

Možným riešením problému je zmeniť svoj connection string tak, aby obsahoval "Use Procedure Bodies=false".

Napr.:
"server=localhost; user id=dbuser; password=password; database=dbname; Use Procedure Bodies=false;"

Článok z kategórie podpory: ASP & ASP.NET