Simply.com is available in english

Savienojums ar MySQL caur .NET Connector

Koda piemērs savienojumam ar MySQL caur .NET Connector un risinājums kļūdai 'SELECT command denied' ar Use Procedure Bodies=false savienojuma virknē.

Sekojošo koda piemēru var izmantot, lai iegūtu piekļuvi MySQL datubāzei, izmantojot MySQL .NET Connector:

MySQL draiveri varat izvietot savā tīmekļa hostingā pats — to var lejupielādēt no MySQL mājaslapas.

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();

Kļūda: SELECT command denied to user 'user'@'x' for table 'proc'

Iemesls ir kļūda MySQL draiverī. Dokumentēts šeit:
http://bugs.mysql.com/bug.php?id=10640
http://bugs.mysql.com/bug.php?id=16703
http://bugs.mysql.com/bug.php?id=14836

Process mēģina izpildīt SELECT vaicājumu proc tabulā. Šī 'proc' tabula ir sistēmas tabula, kas glabā visu MySQL servera lietotāju procedūras. Koplietošanas hostingā piekļuve šai tabulai rada problēmu, jo piekļuve dotu klientiem iespēju redzēt viens otra procedūras.

Iespējams problēmas risinājums ir mainīt savu connection string, lai tas ietvertu "Use Procedure Bodies=false".

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

Raksts no atbalsta kategorijas: ASP & ASP.NET