Używam Ubuntu Desktop 16.04 (uaktualniony z 15.10).
Zainstalowałem phpmyadmin od apt-get install phpmyadmin
. Działa, jeśli przejdę do, localhost/phpmyadmin
ale nie mogę się zalogować jako root.
Dużo tego szukałem. Znalazłem wiele źródeł, w których sugerują zmianę /etc/phpmyadmin/config.inc.php
i zastąpienie użytkownika i hasła słowami „root” i „” (puste dla hasła). Ale mój config.inc.php
różni się od ich. Na przykład w moim pliku nie ma wiersza dla użytkownika i hasła i wygląda na to, że pobiera je ono automatycznie z innego pliku, który jest /etc/phpmyadmin/config-db.php
. Mimo to zmieniłem użytkownika i hasło w tym pliku, ale teraz pojawia się ten błąd:
#1698 - Access denied for user 'root'@'localhost'
Co powinienem zrobić?
Wersja phpmyadmin: 4.5.4.1deb2ubuntu1
mysql Ver 14.14 Distrib 5.7.12, dla Linux (x86_64) przy użyciu opakowania EditLine
źródło
Odpowiedzi:
MySQL 5.7 zmienił bezpieczny model: teraz
root
logowanie do MySQL wymagasudo
.Tj phpMyAdmin będzie nie w stanie wykorzystać
root
dane uwierzytelniające.Najprostszym, najbezpieczniejszym i stałym rozwiązaniem będzie utworzenie nowego użytkownika i przyznanie wymaganych uprawnień.
1. Połącz się z mysql
2. Utwórz prawdziwe hasło
W poniższych krokach użyję
some_pass
jako przykładowego hasła. PROSZĘ WYMIENIĆ GO SWOIM HASŁEM! NIE UŻYWAJSOME_PASS
JAKO HASŁA!3. Utwórz użytkownika dla phpMyAdmin
Uruchom następujące polecenia (zastępując
some_pass
żądanym hasłem):Jeśli twój phpMyAdmin łączy się z localhost, powinno to wystarczyć.
4. Opcjonalne i niebezpieczne: zezwalaj na połączenia zdalne
Pamiętaj : zezwalanie użytkownikowi zdalnemu na posiadanie wszystkich uprawnień stanowi zagrożenie bezpieczeństwa i nie jest to wymagane w większości przypadków.
Mając to na uwadze, jeśli chcesz, aby ten użytkownik miał takie same uprawnienia podczas połączeń zdalnych, dodatkowo uruchom (zastępując
some_pass
hasło użyte w kroku 2):5. Zaktualizuj phpMyAdmin
Za pomocą
sudo
edytuj/etc/dbconfig-common/phpmyadmin.conf
plik aktualizujący wartości użytkownika / hasła w następujących sekcjach (zastępującsome_pass
je hasłem użytym w kroku 2):źródło
root
użytkownik zawsze wymagałsudo
użycia na 5.7. Zaktualizowałem więc odpowiedź, aby utworzyć nowego użytkownika ze wszystkimi uprawnieniami.Napotkałem ten sam problem podczas korzystania z mariaDB z phpmyadmin (Ubuntu 16.04LTS).
Wymagania wstępne:
1) Zainstaluj MariaDB
Jeśli chcesz odinstalować
mariaDB
:2) Zainstaluj phpmyadmin
3) W apache2 utwórz dowiązanie symboliczne do phpmyadmin
Ok, teraz, jeśli będziesz postępować zgodnie z instrukcjami Rael, będziesz mógł się zalogować
phpmyadmin
, ale przynajmniej dla mnie nie byłem w stanie utworzyć nowych baz danych, ponieważ pojawiła się czerwona wiadomość:No privileges
(lub podobna wiadomość)Poprawka polegała na ponownej konfiguracji phpmyadmin i udzieleniu odpowiedzi na niektóre interaktywne pytania.
Teraz, jeśli spróbujesz połączyć się z phpmyadmin (
localhost/phpmyadmin
) za pomocąbędziesz mógł tworzyć bazy danych.
źródło
sudo dpkg-reconfigure phpmyadmin
ma jakiś związek z instalacją mariadb i unistalling mysql? Jeśli tak, to Twoje informacje mogą być przydatne (może dlatego, że sugerujesz usunięcie mysql, którego używam i używam DB). Jeśli nie, to nie ma sensu podawać go jako kontekstu. Jeśli się mylę, popraw mnie.W Ubuntu 16.04 dla MySQL 5.7 sprawdź poniższe informacje w tabeli i wprowadź niezbędne ustawienia:
Sprawdź, czy root ma wtyczkę auth_socket, a następnie uruchom poniższe polecenie:
źródło
apt
aktualizacji MySQL . Tzn. Musisz to zastosować po każdej aktualizacji MySQL na Ubuntu.Jeśli phpymadmin nie może się połączyć, może to wynikać z ustawienia mechanizmu autoryzacji na
auth_socket
. Możesz to zmienić, aby używać zwykłego hasła takiego jak to:Walczyłem z tym właśnie teraz podczas czystej instalacji Ubuntu 18.04 i to sprawiło, że działało. Jest tutaj przyzwoity artykuł wyjaśniający więcej:
https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/
źródło
Dla kompletności znalazłem rozwiązanie mojego problemu z używaniem MariadB w wersji 10.1.23. Składnia, której należy użyć, aby skonfigurować nowego użytkownika, jest podobna do tej zgłoszonej w powyższym poście z @Rael Gugelmin Cunha. Tutaj umieściłem moje rozwiązanie w celu odniesienia do innych osób mających podobne problemy:
pozdrowienia
źródło
Miałem ten sam problem, postępowałem zgodnie z większością rad i żadna z nich nie działała dla mnie! Mój problem był taki sam, kiedy otworzyłem http: // localhost / phpmyadmin w mojej przeglądarce, poprosiłem o szczegóły logowania.
Jako użytkownik korzystałem z roota , a hasło, które znałem, było prawidłowe. I dostawałem
Wystarczyło użyć
phpmyadmin
jako użytkownika, a nieroot
ze znanym hasłem i wpuścił mnie.źródło
some_pass
prawdziwym hasłem!Nawiązując do Rael Cunha:
Tak, jego rozwiązanie działa, a ja próbowałem innych. Jednak odniesienie do użytkownika, który ma ujawnione hasło w pliku konfiguracyjnym,
/etc/dbconfig-common/phpmyadmin.conf
wygląda jak luka w zabezpieczeniach dla akcji ogólnosystemowej.Dlatego wolałbym zasugerować, o co
MariaDB 10.1.x
chodzi (some_user i some_pass będzie wszystkim, co możesz wymyślić):i pozostawiając konfigurację phpadmin (4) bez zmian.
Zaloguj się do phpmyadmin, używając własnych poświadczeń
Według moich własnych ustawień powyższy „%” zastępuję „localhost” ze względów bezpieczeństwa, ale jeśli masz zamknięty port 3306 na swoim serwerze, co niekoniecznie stanowiłoby dla ciebie zagrożenie bezpieczeństwa.
źródło
Tylko poniższy kod działa dla Ubuntu 18.04, php 7 powyżej i mysql 5.7
Nie zastępuj „phpmyadmin”. Tworzenie innych użytkowników nie ma pełnych uprawnień, takich jak tworzenie nowego użytkownika, przypisywanie uprawnień do bazy danych temu użytkownikowi. Tylko użytkownik phpmyadmin uzyska pełny dostęp.
źródło
jeśli zainstalujesz MySQL osobno zatrzymaj go poleceniem poniżej sudo / opt / lampp / lampp stop service mysql stop sudo / opt / lampp / lampp start
źródło