簡體   English   中英

無法從ASP.NET連接到MySQL數據庫

[英]Unable to connect to MySQL database from ASP.NET

我與MySQL數據庫的連接有問題。 我得到了MySQLData.dll。 我的連接字符串如下所示:

String sCON = "Server=mysql51-105.perso; Database=adamlato;  UID=name; Password=pass";

我有OVH服務器。 我認為服務器名稱有問題。 我收到以下錯誤:

MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.
 ---> System.Net.Sockets.SocketException (0x80004005): Żądana nazwa jest prawidłowa, ale dane żądanego typu nie zostały znalezione
     at System.Net.Dns.GetAddrInfo(String name)
     at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
     at System.Net.Dns.GetHostEntry(String hostNameOrAddress)
     at MySql.Data.Common.MyNetworkStream.GetHostEntry(String hostname)
     at MySql.Data.Common.MyNetworkStream.CreateStream(MySqlConnectionStringBuilder settings, Boolean unix)
     at MySql.Data.Common.StreamCreator.GetTcpStream(MySqlConnectionStringBuilder settings)
     at MySql.Data.Common.StreamCreator.GetStream(MySqlConnectionStringBuilder settings)
     at MySql.Data.MySqlClient.NativeDriver.Open()
     at MySql.Data.MySqlClient.NativeDriver.Open()
     at MySql.Data.MySqlClient.Driver.Open()
     at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
     at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
     at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
     at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
     at MySql.Data.MySqlClient.MySqlPool.GetConnection()
     at MySql.Data.MySqlClient.MySqlConnection.Open()
     at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
     at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
     at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
     at _Default.Page_Load(Object sender, EventArgs e)
 in c:\Users\Adam\Documents\Visual Studio 2013\WebSites\WebSite2\Default.aspx.cs:line 20
  • ProviderName=MySql.Data.MySqlClient添加到您的連接字符串
  • 將參考MySQL.Data添加到您的項目

其他疑難解答,請確保有關以下內容:

  1. 數據庫已啟動並接受查詢。
  2. 您可以在數據庫服務器上本地連接到數據庫嗎?
  3. Web服務器和數據庫服務器之間是否有防火牆,或者它們在同一台計算機上?

有關以下參考的更多幫助: http : //www.codeproject.com/Articles/43438/Connect-C-to-MySQL

您缺少提供者名稱。 請試試這個

String sCON = "Data Source=mysql51-105.perso; Initial Catalog=adamlato;  User Id=name; Password=pass;";

如果未正確指定連接字符串,通常會發生此錯誤。

對於那些來自SqlServer背景的用戶,請注意MySql的連接字符串非常不同:

  • providerName="MySql.Data.MySqlClient"代替providerName="System.Data.SqlClient"

對於connectionString=設置:

  • Server=Host.Name.com (或IP)-(相同,但沒有:Port后綴)
  • Port=nnnn默認為3306
  • DataBase=MyDatabase 不是Initial Catalog
  • Uid=User Id= (相同)
  • Pwd=Password= (相同)
  • 如果需要Unicode支持,請添加Charset=utf8 (例如,如果Unicode字符存儲為????)

嘗試修改您的machine.config文件,以在默認的sqlExpress connectionString旁邊包含當前的連接字符串。 還要確保代碼中的實際連接字符串不包含端口詳細信息。 為我工作...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM