ServerPilot konfiguruje MySQL do zarządzania bazami danych na Twoim serwerze. Zazwyczaj po zalogowaniu się do SSH jako root użytkownik, wystarczy wpisać następujące polecenie w wierszu poleceń (SSH), aby uzyskać dostęp do MySQL:
mysql
To polecenie automatycznie odniesie się do pliku, który zawiera root MySQL hasło użytkownika MySQL, aby nie trzeba było go wpisywać. Hasło root dla MySQL jest zawarte w tym pliku:
/root/.my.cnf
Jeśli z jakiegoś powodu musisz zmienić to hasło, należy wykonać kilka kroków. Należy pamiętać, że istnieją tutaj dwa różne procesy:jeden w sytuacji, w której hasło root do MySQL aktualnie działa, a drugi dla niedziałającego hasła root do MySQL.
Uwaga:Dziennik błędów MySQL jest dobrym miejscem do znalezienia problemów z MySQL i znajduje się tutaj:
/var/log/mysql/error.logOstrzeżenie! Zalecamy wykonanie migawki serwera przed wykonaniem takich zadań.
Zmiana działającego hasła głównego MySQL
W tej sekcji opisano zmianę działającego hasła root MySQL, co oznacza, że możesz zalogować się do MySQL jako root użytkownik, wpisując po prostu mysql po znaku zachęty SSH. Jeśli te kroki zostaną wykonane, nie będzie żadnych przestojów w tym procesie.
Zaloguj się do SSH jako root użytkownika, a następnie zaloguj się do MySQL, wpisując:
mysql
W wierszu poleceń MySQL wpisz następujące polecenie, ale zastąp tutaj wpisz swoje-nowe-hasło z rzeczywistym hasłem, którego chcesz użyć. Musisz pozostawić pojedyncze cudzysłowy wokół nowego hasła. Zanotuj hasło, ponieważ w następnym kroku będziesz musiał je umieścić w pliku.
SET PASSWORD FOR root@'localhost' = PASSWORD('put-your-new-password-here');
Zamknij MySQL, wpisując:
quit
Następnie musisz zaktualizować plik zawierający root MySQL hasło użytkownika, dzięki czemu możesz SSH do swojego serwera jako root i uruchom mysql polecenie bez wpisywania hasła.
sudo nano /root/.my.cnfAby uzyskać dodatkowe informacje na temat korzystania z nano edytor tekstu, zapoznaj się z naszym przewodnikiem.
Zaktualizuj pole hasła do nowego hasła wpisanego powyżej, zapisz i wyjdź z edytora tekstu.
Na koniec sprawdź, czy nowe hasło działa:
mysql
Wszystko gotowe!
Zmiana utraconego lub niedziałającego hasła głównego MySQL
Ta sekcja obejmuje odzyskiwanie uprawnień administratora do MySQL po otrzymaniu tego błędu:
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)Ostrzeżenie! Ten proces spowoduje na krótki czas wyłączenie MySQL; najlepiej robić to poza godzinami szczytu, kiedy to najmniej będzie to dotyczyć użytkowników.
Zaloguj się do serwera przez SSH jako root użytkownika i zatrzymaj MySQL, wpisując:
sudo service mysql stop
Następnie uruchom następujące polecenie:
sudo test ! -e /var/run/mysqld && sudo mkdir -p /var/run/mysqld && sudo chown mysql:mysql /var/run/mysqld
Nie zwróci żadnych danych wyjściowych. Uruchom MySQL w specjalnym trybie, wpisując:
sudo mysqld --skip-grant-tables --skip-networking &
Jego dane wyjściowe powinny być podobne do poniższych, chociaż wyświetlany numer będzie inny:
sudo mysqld --skip-grant-tables --skip-networking & [1] 14744
Wrócisz do standardowego monitu SSH. Teraz wpisz następujące polecenie, aby zalogować się do MySQL:
mysql
Nie zostaniesz poproszony o podanie hasła i powinno wyglądać mniej więcej tak:
~# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.25-0ubuntu0.16.04.2-log (Ubuntu) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective Owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Wydaj następujące polecenie, które pozwoli ci zmienić hasło:
FLUSH PRIVILEGES;
Co daje:
Query OK, 0 rows affected (0.00 sec)
Następnie resetujemy aktualne hasło, zmieniając tutaj-tutaj-nowe-hasło do twojego aktualnego hasła. Zanotuj ustawione hasło, ponieważ będziemy musieli wprowadzić je w /root/.my.cnf plik, kiedy skończymy, a także zachowaj pojedyncze cudzysłowy wokół nowego hasła.
SET PASSWORD FOR root@'localhost' = PASSWORD('put-your-new-password-here');
Powinieneś otrzymać powiadomienie, takie jak:
Query OK, 0 rows affected, 1 warning (0.00 sec)
Wyjdź z MySQL, wpisując:
quit
Następnie wpisz następujące polecenie:
sudo killall mysqld
Żadne dane wyjściowe nie zostaną zwrócone. Teraz uruchamiamy MySQL normalnie:
sudo service mysql start
Wreszcie, jeśli zmieniłeś hasło z tego, co było w /root/.my.cnf , musisz zaktualizować ten plik. Jeśli użyłeś tej samej wartości, nie musisz wykonywać tego kroku:
sudo nano /root/.my.cnf
Zaktualizuj tam pole hasła, a następnie zapisz i wyjdź z edytora tekstu.
Teraz powinieneś być w stanie pomyślnie zalogować się do MySQL jako root użytkownika, wpisując następujące polecenie:
mysql