2013-08-20 13 views
10

Zrobiłem następujące kroki, aby skorzystać z MySQL w Ubuntu:MYSQL Access denied for user 'root' @ 'localhost'

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

Zmień hasło roota:

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

Modyfikuj/etc/mysql/my.cnf:

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

Następnie:

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; 

i otrzymuję błąd:

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

+2

Sprawdź, czy w adresie 'ini' nie ma' bind-address = localhost'. – user2339071

Odpowiedz

2

To było absolutnie poprawne, co zrobiłeś, ale myślę, że nie pracuje dla jednego małego rozumu.

Należy użyć identified by password gdy idziesz do przyznania przywilejów tak:

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

Nie sądzę, że masz rację, "IDENTIFY BY PASSWORD" oczekuje hasła w postaci zwykłego tekstu, a nie wartości 'HASŁO (''). – nrathaus

0

Jeśli pojawi się komunikat o błędzie, jak poniżej:

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

to problem jest, że aplikacja nie można access the database. To może mieć kilka przyczyn:

Przede wszystkim upewnij się, że ustawienia bazy danych w swoim db-config.php (pliku połączenia dla aplikacji) są poprawne, a konkretnie name i password swojego użytkownika MySQL, nazwę swojej database i nazwa twojego serwera MySQL.

Jeśli używasz własnego serwera, konieczne może być udzielenie użytkownikowi MySQL odpowiednich uprawnień. Zaloguj się do MySQL jako użytkownik root MySQL i wydaj następujące komendy:

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

Należy pamiętać, że oczekujemy odpowiedzi na * konkretne * problemy w pytaniu. Pamiętaj, aby zwracać szczególną uwagę na to, jaki język, platforma, biblioteki itp. Są używane, i upewnij się, że szukasz rozwiązań dla konkretnego problemu. Na przykład; to pytanie ** w ogóle nie dotyczy PHP. –

Powiązane problemy