nie można utworzyć bazy danych z powodu odmowy dostępu

10

Właśnie zalogowałem się do Ubuntu 12.04 jako normalny użytkownik (vivek) i otworzyłem terminal, aby utworzyć bazę danych, napisałem:

create database Hello;

a błąd, który miałem, to:

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'vivek'

Jeśli zaloguję się jako użytkownik root, nawet MySQL nie otwiera się i pojawia się komunikat o błędzie:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Co zrobić teraz.

viveksinghggits
źródło
1
Jakiego polecenia użyłeś do połączenia z MySQL?
Parto
Właśnie napisałem mysql, aby połączyć się z MySQL
viveksinghggits

Odpowiedzi:

12

Aby zalogować się do MySQL jako użytkownik root, możesz użyć:

mysql -u root -p

a następnie wprowadź hasło MySQL.


Aby zalogować się jako inny użytkownik, musisz najpierw utworzyć tego użytkownika i nadać mu uprawnienia.

Utwórz użytkownika za pomocą - zmień newuserżądaną nazwę użytkownika i passwordwybrane hasło.

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Niestety w tym momencie newusernie ma uprawnień do robienia czegokolwiek z bazami danych.
Dlatego pierwszym etapem jest przyznanie użytkownikowi uprawnień do robienia „rzeczy”.
Aby przyznać wszystkie uprawnienia (wybierz, twórz, usuwaj, aktualizuj, upuszczaj itp.) We wszystkich bazach danych i tabelach, uruchom:

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Aby nadać określone uprawnienia do określonej bazy danych i tabeli, wystarczy uruchomić:

GRANT [type of privilege] ON [database name].[table name] TO '[username]'@'localhost';

Jeśli kiedykolwiek chcesz odmówić lub cofnąć określony przywilej, po prostu uruchom:

REVOKE [type of permission] ON [database name].[table name] FROM '[username]'@'localhost';

Źródło: https://www.digitalocean.com/community/articles/how-to-create-a-new-user-and-grant-permissions-in-mysql

Parto
źródło
Dzięki stary ... Pomógł mi
viveksinghggits
1

otwórz mysql w trybie zapisu

sudo mysqld_safe --skip-grant-tables

===============================

zaloguj się mysql jako użytkownik root

mysql -u root

===============================

przyznaj wszystkie UPRAWNIENIA do tego a / c

GRANT ALL PRIVILEGES ON `%`.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

myślę, że to też zadziała ...

Sudip Das
źródło