Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[ASP/C#/MySQL] Problemen met verbinden

Pagina: 1
Acties:

  • tha_crazy
  • Registratie: Maart 2007
  • Laatst online: 21:52
Normaal werk ik altijd met ASP/C#/MSSQL waarbij het verbinden makkelijk gaat, maar nu heb ik even iets meer problemen.

Voor een project moet ik een site maken in ASP/C# met als achtergrond MySQL.
Naja, vroeger lukte dat me wel, dus prima.
De .net connector van MySQL erop gezet, VS2012 opgestart, databasje erbij opgezet en connection openen.
Tja, dat laatste gaat niet zo lekker.
MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.
Hmm, localhost moet toch goed werken?
Database draait, ja, naja, dan toch maar even de PC naam gebruiken.
Maar dat werkt ook niet, zelfde error.
Misschien port erbij? nee ook, zelfde error.
User/Password in orde, ja die kloppen.
database bestaat ook en MySQL draait.

Oftewel, ik kom er niet uit.
Ondertussen ook even de verbinding naar mssql getest door middel van sqlclient, die werkt wel.
Zie ik iets over het hoofd, of is het toch verstandiger om over te stappen naar de ODBC connector?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using MySql.Data;
using MySql.Data.MySqlClient;

private string _DBServer = WebConfigurationManager.AppSettings["DBServer"].ToString();
private string _DBUser = WebConfigurationManager.AppSettings["DBUser"].ToString();
private string _DBPassword = WebConfigurationManager.AppSettings["DBPassword"].ToString();
private string _DBDatabase = WebConfigurationManager.AppSettings["DBDatabase"].ToString();

public MySqlConnection Connection;
private string connectionString = "";

public void OpenConnection()
{
    //Create connection string
    connectionString = "SERVER=" + _DBServer + "; DATABASE=" + _DBDatabase + "; UID=" + _DBUser + "; PWD=" + _DBPassword + ";";
    //Then add the connectionstring to the MySqlConnection
    Connection = new MySqlConnection(connectionString);
    
    //Finally, make the connection
    try
    {
        Connection.Open();
    }
    catch (MySqlException ex)
    {
        throw new Exception(ex.ToString());
    }
}

  • king_charles
  • Registratie: Maart 2008
  • Laatst online: 15-08-2023
Klopt de opbouw van de connectionstring wel?

Volgens mij moet het deze vorm zijn voor MySql: Database=<dbname>;Data Source=<pcname>;User Id=<username>;Password=<password>

  • tha_crazy
  • Registratie: Maart 2007
  • Laatst online: 21:52
Nou, heb hem toch aan de praat gekregen.
Even overgeschakeld naar de root user en toen deed die het wel 8)7

Opbouw is nu dus als volgt:
connectionString = "SERVER=" + _DBServer + "; Port=" + _DBPort + "; DATABASE=" + _DBDatabase + "; UID=" + _DBUser + "; PWD=" + _DBPassword + ";";

En nu ga ik even..... |:(

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Waarom bouw je de connection string zo op, i.p.v. gebruik te maken van de standaard door het framework meegeleverde functionaliteit?

MSDN: How to: Read Connection Strings from the Web.config File
Connection string syntax

Je kunt je connection string (en dus je database credentials) dan beschermen door de boel te encrypten.

Wat je doet in je try/catch-statement is ook niet echt nuttig: je vangt een exception op en gooit meteen een nieuwe, waarbij waardevolle informatie over stacktraces verloren gaat. Als je in een catch-statement een opgevangen exception wil rethrowen, dan is alleen throw voldoende om dit te doen (en blijft de stacktrace behouden). Als in je catch-statement alleen maar een rethrow staat, kun je het hele try/catch-statement weglaten (behalve als je ook nog een finally hebt).

Je geeft aan dat het gebruiken van een andere gebruiker (root) het probleem verhielp, dat betekent dat in je MySQL-database iets niet is geconfigureerd met de gebruiker die je wilde gebruiken. Mogelijke oorzaken:
- Foutieve gebruikersnaam
- Verkeerd wachtwoord
- Geen rechten op de database die je wilde benaderen
- Het IP-adres/hostname vanaf waar je wilde connecten stond niet op de whitelist voor dat specifieke user account

[ Voor 0% gewijzigd door RobIII op 24-08-2013 03:18 . Reden: url gefixed ]

We are shaping the future