Jestem inżynierem elektrykiem, który bawi się głównie systemami zasilania zamiast programowania. Ostatnio postępuję zgodnie z instrukcją instalacji pakietu oprogramowania na Ubuntu. Właściwie to nie mam żadnej wiedzy mySQL
. Wykonałem następujące instalacje na moim Ubuntu.
sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp
Więc robię
me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"
Skończyło się na następującym komunikacie o błędzie.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Jak mogę to naprawić i kontynuować?
Odpowiedzi:
Uwaga: w przypadku MySQL 5.7+ proszę zobaczyć odpowiedź od @Lahiru na to pytanie. Zawiera więcej aktualnych informacji.
Dla MySQL <5.7:
Domyślne hasło roota jest puste (tzn. Pusty ciąg), a nie
root
. Możesz więc zalogować się jako:Powinieneś oczywiście zmienić swoje hasło roota po instalacji
W większości przypadków powinieneś również skonfigurować indywidualne konta użytkowników, zanim zaczniesz intensywnie pracować z DB.
źródło
-p
Flaga określa hasło, więc po zmianie hasła roota zrobiłbyś tomysql -u root -p[newpassword]
.< [filename]
Jest za pomocą wejścia std wykonać plik SQL na ścieżce podanej przez poświadczeń użytkownika, które świadczą.mysqladmin -u root password abc1234
, ale zrozumiałemmysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'
. Dziękuję bardzo!Byłem w stanie rozwiązać ten problem, wykonując to oświadczenie
Co zmieni hasło roota.
źródło
dpkg --get-selections | grep sql
aby uzyskać swoją wersjęyum list installed
dodaj| grep sql
do filtrowania tylko pakietów SQL.sudo: dpkg-reconfigure: command not found
. Jakieś sugestie?Musisz zresetować hasło! kroki dla Mac OSX (przetestowane i działające) i Ubuntu
Przestań używać MySQL
lub
Uruchom w trybie awaryjnym:
(powyżej linii jest całe polecenie)
Będzie to ciągłe polecenie do zakończenia procesu, więc otwórz kolejne okno powłoki / terminala, zaloguj się bez hasła:
Zgodnie z komentarzem @ IberoMedia, w przypadku nowszych wersji MySQL pole nosi nazwę
authentication_string
:Uruchom MySQL przy użyciu:
lub
twoje nowe hasło to „hasło”.
źródło
--skip-grant-tables
w połączeniu z,--skip-networking
aby uniemożliwić zdalnym klientom nawiązywanie połączenia. och, a także ten nie działał dla mnie. Dlatego tu przybyłem: p--
sugerowałbym,dpkg --get-selections | grep mysql-server-
aby uzyskać dokładną wersję MySQL, a następnie przejść do sudo dpkg-rekonfigurować mysql-server-5.x (wymienić 5 .x z wersją serwera, btw). Z taką precyzją skomentowałem odpowiedź @ Divza, ale jest ona maskowana przez kilka komentarzy „dzięki”.Wiem, że to stare pytanie, ale myślę, że to może komuś pomóc. Ostatnio napotkałem ten sam problem, ale w moim przypadku pamiętam moje hasło całkiem dobrze, ale ciągle pojawiał się ten sam błąd. Próbowałem tak wielu rozwiązań, ale wciąż żadne nie pomogło, a potem spróbowałem tego
po czym prosi o podanie takiego hasła
a następnie wpisałem hasło, którego użyłem. To wszystko
źródło
Przy pierwszym uruchomieniu serwera dzieje się tak, ponieważ katalog danych serwera jest pusty:
Aby go ujawnić, użyj następującego polecenia:
Zmień hasło roota jak najszybciej, logując się za pomocą wygenerowanego hasła tymczasowego i ustaw niestandardowe hasło dla konta administratora:
źródło
sudo grep 'temporary password' /var/log/mysqld.log
, dostaję/var/log/mysqld.log: No such file or directory
sudo grep 'temporary password' /var/log/mysql/error.log
. Rozwiązanie @Lahiru działało dla mnie.shell> sudo grep 'password' /var/log/mysql/error.log
. Pracowałem dla mnie, ale dostaję: root @ localhost jest tworzony z pustym hasłem! Rozważ wyłączenie opcji --initialize-niepewne. Moja wersja mysql to: Ver 8.0.13 dla Linux na x86_64 (MySQL Community Server - GPL)jeśli problem nadal występuje, spróbuj wymusić zmianę przepustki
Skonfiguruj nowe hasło użytkownika root MySQL
Zatrzymaj serwer MySQL:
Uruchom serwer MySQL i przetestuj go:
źródło
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
nękał też mój serwer. „mysqld_safe” również nie powiodło się, dopóki nie zrobiłem „killall mysqld” PO twoim kroku 1.--skip-grant-tables
w połączeniu z,--skip-networking
aby uniemożliwić zdalnym klientom nawiązywanie połączenia. och, a także ten nie działał dla mnie. Dlatego tu przybyłem: pDzieje się tak, gdy brakuje hasła.
Kroki zmiany hasła, gdy zapomnisz:
Zatrzymaj serwer MySQL (w systemie Linux):
Uruchom bazę danych bez ładowania tabel grantu lub włączania sieci:
Znak ampersand na końcu tego polecenia spowoduje, że proces ten będzie działał w
tle, dzięki czemu będziesz mógł nadal używać terminala i uruchamiać #mysql -u root, nie będzie pytał o hasło.
Jeśli pojawi się błąd jak poniżej:
2018-02-12T08: 57: 39.826071Z Katalog mysqld_safe „/ var / run / mysqld” dla
pliku gniazda UNIX nie istnieje. mysql -u root ERROR 2002 (HY000): Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo
„/var/run/mysqld/mysqld.sock” (2) [1] + Exit 1
Utwórz katalog usług MySQL.
Zezwól użytkownikowi MySQL na zapis w katalogu usługi.
Uruchom to samo polecenie w kroku 2, aby uruchomić mysql w tle.
Uruchom mysql -u root, otrzymasz konsolę mysql bez podawania hasła.
Uruchom te polecenia
Dla MySQL 5.7.6 i nowszych
Dla MySQL 5.7.5 i starszych
Jeśli polecenie ALTER USER nie działa, użyj:
Teraz wyjdź
Aby zatrzymać instancję uruchomioną ręcznie
Uruchom ponownie mysql
źródło
sudo kill `sudo cat /var/run/mysqld/mysqld.pid`
Natknąłem się na ten irytujący problem i znalazłem wiele odpowiedzi, które nie zadziałały. Najlepszym rozwiązaniem, jakie napotkałem, było całkowite odinstalowanie mysql i jego ponowna instalacja. Podczas ponownej instalacji ustawiłeś hasło roota, co rozwiązało problem.
Znalazłem ten kod gdzie indziej, więc nie biorę za niego uznania. Ale to działa. Aby zainstalować mysql po odinstalowaniu, myślę, że cyfrowy ocean ma dobry samouczek. Sprawdź w tym mój cel.
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096
źródło
Korzystam z Ubuntu-16.04: zainstalowany mysql - 5.7. Miałem ten sam problem: odmowa logowania dla użytkownika root.
Próbowałem poniższych kroków:
dpkg --get-selections | grep mysql
(aby uzyskać wersję mysql).dpkg-reconfigure mysql-server-5.7
mysql -u root -p
Bez -p to nie monituje o podanie hasła. Po wejściu możesz utworzyć użytkownika z hasłem, wykonując następujące czynności:
Wyjdź z katalogu głównego i zaloguj się z podanego powyżej adresu.
Z jakiegoś powodu nadal pisanie mysql nie działa. W OGÓLE. Sugeruję, aby był to nawyk używania
mysql -u <name> -p
.źródło
wystarczy wejść do terminalu
mysql -u root -p. niż poprosi o hasło
źródło
Jeśli żadna z pozostałych odpowiedzi nie działa dla Ciebie i wystąpił ten błąd:
Wykonaj poniższe polecenia krok po kroku, aż zresetujesz hasło:
źródło
$ sudo cat /etc/mysql/debian.cnf
Spowoduje to wyświetlenie szczegółów jako-
# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock
Powyżej widzimy hasło właśnie mamy zamiar używać
(GUx0RblkD3sPhHL5)
, że w prompt-mysql -u debian-sys-maint -p Enter password:
teraz podaj hasło ( GUx0RblkD3sPhHL5 ).
Teraz
exit
z MySQL i zaloguj się ponownie jako-mysql -u root -p Enter password:
Teraz podaj nowe hasło. To wszystko, mamy nowe hasło do dalszych zastosowań.
To zadziałało dla mnie, mam nadzieję, że ci też pomogę!
źródło
Przeczytaj oficjalną dokumentację: Mysql: Jak zresetować hasło roota
Jeśli masz dostęp do terminala:
MySQL 5.7.6 i nowsze wersje:
MySQL 5.7.5 i wcześniejsze:
źródło
> mysql -u {your_username}
Używam mysql-5.7.12-osx10.11-x86_64.dmg w Mac OSX
Proces instalacji automatycznie ustawia tymczasowe hasło dla użytkownika root. Powinieneś zapisać hasło. Hasła nie można odzyskać.
Postępuj zgodnie z instrukcją
cd /usr/local/mysql/bin/
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');
jeśli chcesz ustawić hasło: „root”, wówczas polecenie brzmi:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
exit
./mysql -u root -p
Dla wygody powinieneś dodać
"/usr/local/mysql/bin"
do swojej ŚCIEŻKITeraz z dowolnego miejsca możesz wpisać,
./mysql -u root -p
a następnie wpisać hasło, a pojawi się monit mysql>.Mam nadzieję, że to pomoże.
źródło
Odpowiedź może brzmieć głupio, ale po marnowaniu godzin w ten sposób udało mi się ją uruchomić
Dostałem komunikat o błędzie
Mimo że wpisałem poprawne hasło (hasło tymczasowe, które dostajesz przy pierwszej instalacji mysql)
Mam rację, gdy wpisałem hasło, gdy hasło hasła migało
źródło
jeśli problem nadal występuje, spróbuj wymusić zmianę przepustki
Zatrzymaj serwer MySQL (w systemie Linux):
Zatrzymaj serwer MySQL (w systemie Mac OS X):
Uruchom demona mysqld_safe za pomocą --skip-grant-tables
Skonfiguruj nowe hasło użytkownika root MySQL
Zatrzymaj serwer MySQL (w systemie Linux):
Zatrzymaj serwer MySQL (w systemie Mac OS X):
Uruchom usługę serwera MySQL i przetestuj, aby zalogować się przez root:
źródło
Domyślne hasło będzie puste, więc musisz zmienić hasło, wykonując poniższe czynności.
połącz się z mysql
root # mysql
Użyj mysql
mysql> update user set password = PASSWORD ('root') gdzie User = 'root'; Na koniec załaduj ponownie uprawnienia:
mysql> uprawnienia do opróżniania; mysql> quit
źródło
Tylko jedna linia i to rozwiązało mój problem.
źródło
W Ubuntu 16.04 (MySQL wersja 5.7.13) udało mi się rozwiązać problem, wykonując poniższe czynności:
Postępuj zgodnie z instrukcjami z sekcji B.5.3.2.2 Resetowanie hasła roota: Podręcznik użytkownika systemów uniksowych i systemów uniksowych MySQL 5.7
Kiedy próbowałem #sudo mysqld_safe --init-file = / home / me / mysql-init i nie powiodło się. Błąd występował w /var/log/mysql/error.log
2016-08-10T11: 41: 20.421946Z 0 [Uwaga] Rozpoczęto wykonywanie pliku init_file / home / me / mysql / mysql-init '. 2016-08-10T11: 41: 20.422070Z 0 [BŁĄD] / usr / sbin / mysqld: Nie znaleziono pliku / home / me / mysql / mysql-init '(Errcode: 13 - Odmowa dostępu) 2016-08-10T11: 41: 20.422096Z 0 [BŁĄD] Przerwanie
Uprawnienie do pliku mysql-init nie stanowiło problemu, trzeba edytować pozwolenie Apparmor
Edytuj przez #sudo vi /etc/apparmor.d/usr.sbin.mysqld
Przeładuj #sudo /etc/init.d/apparmor
Uruchom ponownie mysqld_safe, spróbuj wykonać krok 2 powyżej. Sprawdź /var/log/mysql/error.log, aby upewnić się, że nie wystąpił błąd i mysqld został pomyślnie uruchomiony
Uruchom #mysql -u root -p
Wprowadź hasło:
Wprowadź hasło określone w mysql-init. Powinieneś być teraz w stanie zalogować się jako root.
Zamknij mysqld_safe przez #sudo mysqladmin -u root -p zamknij
Uruchom mysqld normalnie przez #sudo systemctl start mysql
źródło
Jeśli masz MySQL jako część obrazu Docker (powiedzmy na porcie 6606) i instalacji Ubuntu (na porcie 3306) określenie portu jest niewystarczające:
rzuci:
ponieważ domyślnie próbuje się połączyć z hostem lokalnym, określenie lokalnego adresu IP rozwiązuje problem:
źródło
W najnowszych wersjach MySQL nie ma tego
password
wmysql.user
tabeli.Musisz więc wykonać
ALTER USER
. Umieść to polecenie w jednym wierszu w pliku.I uruchom go jako plik init (jako użytkownik root lub mysql)
Serwer MySQL musi zostać zatrzymany, aby uruchomić
mysqld_safe
.Może również występować problem z uprawnieniami Apparmor do ładowania tego pliku init. Przeczytaj więcej tutaj https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql
źródło
Jeśli jeszcze nie ustawiłeś hasła, a następnie uruchom
mysql -uroot
, działa dla mnie.źródło
Na Macu, jeśli masz problem z zalogowaniem się przy użyciu pierwszego hasła podanego podczas instalacji, być może możesz po prostu zabić proces mysql, a następnie spróbować.
Więc: 1- uruchom następujące polecenie, aby znaleźć PID mysql:
2- zabić proces:
Następnie możesz zalogować się przy użyciu początkowego hasła za pomocą tego polecenia:
Które proszą o podanie hasła. Wystarczy wpisać początkowe hasło.
źródło
Miałem podobny problem:
Ale w moim przypadku przyczyna była naprawdę głupia. Skopiowałem polecenie z dokumentu Word, a problem polegał na tym, że łącznik nie miał kodu 2D ASCII, ale Unicode E28093.
Zła droga:
Właściwa droga:
Oba wyglądają tak samo, ale nie są takie same (spróbuj, skopiuj i wklej zastępując hasło).
W obliczu tego typu błędu zalecana jest próba wpisania polecenia zamiast kopiowania i wklejania.
źródło
Próbowałem z poprawną odpowiedzią @Lahiru, ale nie działałem z serwerem MySQL w wersji 8.0.16 (Społeczność) na macOS Mojave.
Postępując zgodnie z instrukcjami powyżej Sameer Choudhary i z pewnymi poprawkami, byłem w stanie zmienić hasło roota i umożliwić dostęp do roota z localhost.
Aktualizacja: Wszystkie te nie są wymagane, jeśli instalujesz w systemie Mac OS za pomocą homebrew: „brew install mysql”
źródło
Miałem ten problem z Ubuntu 18.04 LTS i Mysql Server wersja 5.7.27-0ubuntu0.18.04.1 (Ubuntu).
Moje rozwiązanie było (działające jako root z
sudo -i
)źródło
Zetknąłem się również z tym samym problemem, co zrobiłem
1) Otwórz swój cmd
2) Przejdź do C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin> (gdzie MySQL Server 8.0 może się różnić w zależności od zainstalowanego serwera)
3) Następnie wprowadź następującą komendę mysql -u root -p
4) Poprosię o hasło ... po prostu naciśnij Enter, ponieważ czasami hasło wpisane podczas instalacji zmienia się na puste.
teraz możesz po prostu uzyskać dostęp do bazy danych
To rozwiązanie działało dla mnie na platformie Windows
źródło
Podczas gdy najwyższa odpowiedź (w / mysqladmin) działała na Macu 10.15, to nie działała na Ubuntu. Następnie wypróbowałem wiele innych opcji, w tym bezpieczny start dla mysql, żadna nie działała. W ten sposób dodając nową odpowiedź.
Przynajmniej dla wersji, której otrzymałem
5.7.28-0ubuntu0.18.04.4
, brakowało odpowiedziIDENTIFIED WITH mysql_native_password
. 5.7.28 jest ustawieniem domyślnym w bieżącym LTS, a zatem powinno być domyślnym dla większości nowych systemów (do 20.04 wychodzi LTS).Znaleziono: https://www.digitalocean.com/community/questions/can-t-set-root-password-mysql-server i teraz zastosowano
co działa.
źródło
Wystąpił błąd
to był problem z działającym portem.
Domyślnie mysql działa
port 3306
.Możesz to sprawdzić, uruchamiając
w systemie 32-bitowym:
sudo /opt/lampp/manager-linux.run
w systemie 64-bitowym:
sudo /opt/lampp/manager-linux-x64.run
i kliknij
configure
przyciskW moim przypadku port działał na 3307 i użyłem polecenia
źródło
W moim przypadku próbowałem zdać muszlapolecenie do kontenera. W takim przypadku interpretowano tylko pierwsze słowo. Upewnij się, że nie działasz:
w przeciwieństwie do:
może spróbuj zacytować:
źródło