2015-11-30 14 views
23

Nie można zalogować się do bazy danych MySQL po nową instalację z ID korzeniowego i pustym/bez hasła jak inne starszymi wersjami MySQL zrobićJaki jest domyślny pasword root MySQL 5.7

+0

root już nie h jako jeden, ponieważ go nie używa. Domyślnie metoda auth to auth socket. użyj sudo, aby uzyskać dostęp z uprawnieniami administratora, zmień metodę uwierzytelniania na hasło i ustaw hasło, jeśli potrzebujesz root o nazwie lmysql bez dostępu do systemu root. –

+0

@ G.Martin, czy mógłbyś rozszerzyć ten komentarz na odpowiedź z bardziej szczegółowymi krokami? Myślę, że jest to rozwiązanie, którego chcę użyć, ale nie wiem, jak zmienić metodę auth. ('sudo mysql -u root' działa dla mnie - chcę to zmienić, więc mogę po prostu zrobić' mysql -u root' bez hasła) –

+0

Niestety Prawdopodobnie już to wymyśliłeś, ale dowiedziałem się, że mój post dotyczy tylko debian distros. Jeśli nadal jest to problem (wątpię w to), mogę podać więcej szczegółów. –

Odpowiedz

63

Po zainstalowaniu mysql-community-serwer 5.7 z świeże na linux, musisz znaleźć tymczasowe hasło z /var/log/mysqld.log, aby zalogować się jako root.

  1. grep 'temporary password' /var/log/mysqld.log
  2. Run mysql_secure_installation zmienić nowe hasło

ref: http://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html

+4

Dziękujemy! Trochę szaleni, aby znaleźć tę informację tutaj, zamiast dokumentu MySQL 5.7 od Oracle. – maddin2code

+6

To ratuje mi życie ... szukałem rozwiązania wszędzie, a to rozwiązuje cały mój problem. Nawet dokument ze strony mysql nie wspomniał o tym. To szalony człowiek. Dzięki! – nodeffect

+1

Gdzie zaglądasz na komputerze z systemem Windows? – rotaercz

4

W przypadku, gdy chcesz zainstalować MySQL lub percona bez nadzoru (jak w moim przypadku ansibla), można użyć następujący skrypt:

# first part opens mysql log 
# second part greps lines with temporary password 
# third part picks last line (most recent one) 
# last part removes all the line except the password 
# the result goes into password variable 

password=$(cat /var/log/mysqld.log | grep "A temporary password is generated for" | tail -1 | sed -n 's/.*[email protected]: //p') 

# setting new password, you can use $1 and run this script as a file and pass the argument through the script 

newPassword="[email protected]" 

# resetting temporary password 

mysql -uroot -p$password -Bse "ALTER USER 'root'@'localhost' IDENTIFIED BY '$newPassword';" 
Powiązane problemy