Dzisiaj zalogowałem się jako root do Ubuntu 14.04.1 LTS ll
a następnie apt-get install mariadb-server
(bez sudo, ale jako root).
Z mySQL -h localhost -u root --password=<PW>
mam
Odmowa dostępu dla użytkownika „root” @ „localhost” (używając hasła: TAK)
Z mySQL -u root -p
I zalogowany do DB i zrobił
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<PW>';
FLUSH ALL PRIVILEGES;
Ale to nie pomogło. Masz jakiś pomysł? Nie znalazłem odpowiedzi na podobne pytania.
Odpowiedzi:
TL; DR: Aby uzyskać dostęp do nowszych wersji mysql / mariadb jako użytkownik root, po nowej instalacji musisz być w powłoce root (tj.
sudo mysql -u root
Lubmysql -u root
w powłoce uruchomionej przezsu -
lubsudo -i
najpierw)Po wykonaniu tej samej aktualizacji na Ubuntu miałem ten sam problem.
Dziwne było to
Przyjąłby moje hasło i pozwolił mi je ustawić, ale nie mogłem się zalogować
root
przezmysql
klientaMusiałem zacząć mariadb z
aby uzyskać dostęp jako root, podczas gdy wszyscy inni użytkownicy nadal mogą uzyskać dostęp dobrze.
Patrząc na
mysql.user
tabelę, którą zauważyłem dla roota,plugin
kolumna jest ustawiona na,unix_socket
podczas gdy wszyscy inni użytkownicy są ustawione na `` mysql_native_password ''. Szybkie spojrzenie na tę stronę: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ wyjaśnia, że Unix Socket umożliwia logowanie poprzez dopasowanieuid
procesu uruchomionego klienta do procesu użytkownika wmysql.user
stół. Innymi słowy, aby uzyskać dostęp do mariadbroot
, musisz być zalogowany jako root.Z pewnością ponowne uruchomienie mojego demona mariadb z wymaganym uwierzytelnieniem Mogę zalogować się jako root z
lub
Po zrobieniu tego pomyślałem o tym, jak uzyskać dostęp bez konieczności wykonywania sudo, co jest tylko kwestią uruchomienia tych zapytań mysql
(zastępując
<password>
żądanym hasłem root mysql). Włączono logowanie hasłem dla użytkownika root.Alternatywnie uruchom zapytanie mysql:
Zmieni konto root tak, aby korzystało z hasła logowania bez zmiany hasła, ale może to pozostawić instalację mysql / mariadb bez hasła roota.
Po jednym z nich musisz ponownie uruchomić mysql / mariadb:
I voila, miałem dostęp z mojego konta osobistego przez
mysql -u root -p
NALEŻY PAMIĘTAĆ, ŻE TO ZMNIEJSZA BEZPIECZEŃSTWO Prawdopodobnie programiści MariaDB zdecydowali się na takie działanie uprawnień roota z dobrego powodu.
Myśląc o tym jestem bardzo szczęśliwy, że muszę,
sudo mysql -u root -p
więc wracam do tego, ale pomyślałem, że opublikuję swoje rozwiązanie, ponieważ nie mogłem znaleźć go gdzie indziej.źródło
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
polecenie dwa razy przed opróżnieniem wygód?sudo service mysql restart
W czystym Ubuntu 16.04 LTS login root MariaDB dla hosta lokalnego zmieniono ze stylu hasła na styl logowania sudo ...
więc po prostu zrób
ponieważ chcemy zalogować się za pomocą hasła, utwórz kolejnego użytkownika „user”
w konsoli MariaDB ... (otrzymujesz w konsoli MariaDB z 'sudo mysql -u root')
następnie w zachęcie powłoki bash,
i możesz zalogować się jako „użytkownik” z „twoim hasłem” na hoście lokalnym
źródło
Wypróbuj polecenie
naciśnij enter i przypisz nowe hasło dla roota w mysql / mariadb .
Jeśli pojawi się błąd, taki jak
włącz usługę za pomocą
teraz, jeśli ponownie wejdziesz z
jeśli podążasz za problemem, wprowadź
sudo su
imysql -u root -p
zastosuj uprawnienia do rootaGRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<password>';
to rozwiązało mój problem w MariaDB .
Powodzenia
źródło
od zaakceptowanej odpowiedzi administratora :
źródło
Musiałem być zalogowany do Ubuntu jako root, aby uzyskać dostęp do Mariadb jako root. Może to mieć coś wspólnego z tym „Harden ...”, o które prosi Cię podczas pierwszej instalacji. Więc:
i jesteś w środku.
źródło
Nowe polecenie do wyczyszczenia uprawnień to:
FLUSH PRIVILEGES
Stare polecenie
FLUSH ALL PRIVILEGES
już nie działa.Pojawi się błąd, który wygląda tak:
MariaDB [(none)]> FLUSH ALL PRIVILEGES; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ALL PRIVILEGES' at line 1
Mam nadzieję że to pomoże :)
źródło
Uruchom mysql_upgrade.
Sprawdź to
mówi
Sprawdź, czy tabela istnieje _mysql.proxies_priv_.
Odmowa dostępu dla użytkownika „root” @ „localhost” podczas próby nadania uprawnień. Jak nadać uprawnienia?
źródło
System taki jak Ubuntu woli używać wtyczki auth_socket . Będzie próbował się uwierzytelnić, porównując twoją nazwę użytkownika w DB i proces, który wysyła żądanie mysql; jest to opisane tutaj
Zamiast tego możesz użyć mysql_native_password , które będzie wymagało uwierzytelnienia użytkownika / hasła.
Jeśli chodzi o metodę osiągnięcia tego, polecam to .
źródło