2013-07-15 13 views
11

Tentativo di connessione a MySQL sul mio host web, utilizzando Connector/Net C#/WinForms in Visual Studio 2012 Update 3, ma ottenere il seguente messaggio di errore:autenticazione non è riuscita con il metodo mysql_native_password

Authentication to host '1.1.1.1' for user '[email protected]' using method 'mysql_native_password' failed with message: Access denied for user '[email protected]'@'2.2.2.2' (using password: YES)

string connectionString = "SERVER=1.1.1.1;PORT=3306;DATABASE=databaseName;[email protected];PASSWORD=mypassword;"; 

MySqlConnection connection = new MySqlConnection(connectionString); 
connection.Open(); 

I mi sto collegando da remoto, ho autorizzato il mio IP (e anche il whitelist temporaneo tutto (%) da testare), ho controllato il nome utente, la password e l'IP.

ho inizialmente provato il nome utente senza il dominio (nome utente, piuttosto che [email protected]), ma mi ha dato l'errore di seguito:

Authentication with old password no longer supported, use 4.1 style passwords.

Qualsiasi aiuto sarebbe molto apprezzato, grazie!

+1

possibile duplicato di [Autenticazione con password precedente non più supportata, utilizzare password in stile 4.1] (http://stackoverflow.com/questions/15772479/authentication-with-old-password-no-longer-supported-use-4 -1-style-password) – eggyal

+1

Non duplicato poiché il primo messaggio di errore è problematico. Questo secondo messaggio di errore è stato risolto aggiungendo @ mydomain.com al nome utente. –

+1

I messaggi di errore implicano che è cosa giusta da fare, ad es.che il tuo nome utente MySQL non contenga '@ mydomain.com'. – eggyal

risposta

4

Il problema di "Host di accesso al database remoto". "Puoi consentire ai server Web esterni di accedere ai tuoi database MySQL aggiungendo il loro nome di dominio all'elenco di host che sono in grado di accedere ai database sul tuo sito web."

L'accesso a MySql non è concesso per l'indirizzo IP del sistema su cui è in esecuzione l'applicazione (nel tuo caso è "2.2.2.2").

Nota: - '2.2.2.2' è il tuo indirizzo IP pubblico.

1

Due cose possibili:

  1. MySQL è maiuscole e minuscole assicurarsi che il caso di Database= nella stringa di connessione corrisponde con il nome del database effettivo
  2. Potrebbe essere necessario concedere i privilegi per l'utente.

Spero che questo ti aiuti.

+0

Sì. Case sensitive era il caso qui. Bel lavoro Uomo. –

1

Controllare il file delle impostazioni dell'applicazione (o ovunque sia stata memorizzata la stringa di connessione).

Nel mio caso l'applicazione utilizzava la vecchia stringa di connessione (che non era valida). Supponevo che la modifica apportata al codice del file delle impostazioni si riflettesse sul progettista (del file delle impostazioni). Ma non lo era!

0

Nel mio caso password aggiornata non è stato utilizzato. Ho appena generato la password usando Password Generator e la ho copiata ma ho dimenticato di fare clic su Cambia password.

Verificare inoltre che l'utente sia aggiunto al database e disponga di privilegi.

Problemi correlati