2013-08-20 14 views
10

ho fatto le seguenti operazioni per utilizzare MySQL in Ubuntu:MYSQL Accesso negato per l'utente 'root' @ 'localhost'

sudo aptitude install php5-mysql mysql-server 
sudo service mysql stop 
sudo mysqld_safe --skip-grant-tables & 
sudo mysql -u root mysql 

Cambio password di root:

mysql> UPDATE mysql.user SET Password=PASSWORD('SecurePassword') WHERE 
User='root'; 
mysql> FLUSH PRIVILEGES; 
mysql> EXIT 

Modifica/etc/mysql/my.cnf:

[client] 
user=root 
password=SecurePassword 
[mysqld] 
... 
default-time-zone = '+0:00' 

Poi:

sudo service mysql start 
mysql -u root 
mysql> SHOW GRANTS FOR [email protected] 
+--------------------------------------------------------------------------------------------------+ 
| Grants for [email protected] | 
+--------------------------------------------------------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '[here is the Securepassword]' | 
+-------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

mysql> 
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; 

e ricevo un errore:

Access denied for user 'root'@'localhost' (using password: YES)

+2

Controllare 'bind-address = localhost' nel proprio 'ini'. – user2339071

risposta

2

E 'stato assolutamente corretto quello che hai fatto, ma credo che non funziona per un piccolo motivo.

Si dovrebbe usare identified by password quando si sta per concedere i privilegi in questo modo:

mysql> GRANT ALL PRIVILEGES ONE `*`.`*` TO 'root'@'localhost' IDENTIFIED BY PASSWORD 
'*A4B6157319038724E3560894F7F932C8886EBFCF' WITH GRANT OPTION; 
+0

Non penso che tu abbia ragione, 'IDENTIFY BY PASSWORD' si aspetta una password in testo semplice, non un valore' PASSWORD ('') ' – nrathaus

0

Se si ottiene un messaggio di errore simile a questo:

Warning: mysql_connect(): Access denied for user: .... 

allora il problema è che l'applicazione impossibile access the database. Questo può avere diverse cause:

Prima di tutto, assicurarsi che le impostazioni del database nel db-config.php (file di connessione per l'applicazione) siano corrette, in particolare il name e password del vostro utente MySQL, il nome del database, e la nome del tuo server MySQL.

Se si sta eseguendo il proprio server, potrebbe essere necessario fornire le autorizzazioni appropriate all'utente MySQL. Accedere a MySQL come utente root di MySQL ed emettere questi comandi:

GRANT ALL PRIVILEGES ON database_name TO [email protected] IDENTIFIED BY 'password'; 
FLUSH PRIVILEGES; 
+0

Si prega di notare che ci aspettiamo che le risposte risolvano i problemi * specifici * nella domanda. Assicurati di prestare particolare attenzione a quale lingua, piattaforma, biblioteche, ecc. Vengono utilizzati, e assicurati di cercare soluzioni al problema preciso. Per esempio; questa domanda è ** non ** su PHP affatto. –

Problemi correlati