Mam problem z połączeniem się z bazą danych MySQL. Za każdym razem dostaję: #1045 - Access denied for user: 'thenkles@localhost' (Using password: YES). Kiedyś zadałem to samo pytanie i otrzymałem odpowiedź, żeby z my.ini wywalić w ogóle wpisy user i password. Działa, tylko wtedy nie mam uprawnień, żeby utworzyć bazę... Kiedyś sobie z tym jakoś poradziłem, okrężną drogą, ale teraz mam już dość. Czy ktoś mógłby wyjaśnić, o co w tym chodzi?
MySQL nowsze używa innego sposobu kodowania haseł, więc musisz mieć co najmniej wersję 5.0 php żeby się poprawnie połączyć używając hasła albo starszą wersję MySQL - przynajmniej tak gdzieś wyczytałem ale u mnie zainstalowanie php 5.0 w takim przypadku zdało egzamin
To jest MySQL 4.0.20, PHP też 4.ileś. No i zwróć uwagę na to:
phpmyadmin napisał(a)
#1045 - Access denied for user: 'thenkles@localhost' (Using password: YES)
thenkles napisał(a)
(...) No i zwróć uwagę na to:
phpmyadmin napisał(a)
#1045 - Access denied for user: 'thenkles@localhost' (Using password: YES)
no właśnie, jakby było "Using password: NO" to może i by połączyło a tak się hashe czy coś nie zgadzają - a co ci szkodzi zainstalować PHP 5.0 ?
Sorry, źle zrozumiałem ten komunikat. Ale w takim razie, co mogę zrobić? Nie chcę upgrade'ować ani PHP ani MySQL do wersji 5.
możesz zdegradować MySQL to wersji <4.1 albo poszukać nowszego modułu mysql/mysqli do php z poprawionym bugiem, ale zobacz - może naprawdę masz źle ustawione i nie masz praw
Że praw nie mam, to całkiem możliwe... Tylko jak je, do cholery, ustawić? Szukam i szukam, ale znajduję tylko ustawianie praw, jak się ma uprawnienia :|
Zainstaluj sobie MySQL Control Center. Można tam bez problemu zmieniać ustawienia dostępu do wszystkich kont.
zOOm3ks napisał(a)
Zainstaluj sobie MySQL Control Center. Można tam bez problemu zmieniać ustawienia dostępu do wszystkich kont.
Tylko, że trzeba mieć jakiegoś użytkownika z uprawnieniami, żeby coś zmieniać...
Możesz sobie założyć nowe konto ze wszystkimi uprawnieniami.
Zrób tak:
- daj wszystkie uprawnienia do "Global privileges" kontom "@localhost" i "root@localhost"
- zabierz wszystkie przywileje kontom "@%" i "root@%". Pozycja "Global privileges" musi być jednak zaznaczona
- załuż konto o dowolnym loginie i haśle dla "%" hostów (w domyśle wszystkich)
- załuż konto o takim samym loginie i haśle dla "localhost"
Ja zrobilem to tak i wszystko jest ok. Łącze się z bazą z dowolnego host za pomocą wprowadzonego loginu i hasła. Jeśli u ciebie nie zadział to niestety nie wiem jak inaczej to rozwiązać
Zapomnialem dodać że założone przez ciebie konta mają mieć wszystkie przywileje do bazy którą chcesz otwierać i do "Global privileges". 4 bazowe konta mają mieć zaznaczone tylko "Global privileges"
by zmieniać uprawnienia powinieneś mieć konto root'a lub dostęp do niego
potem tylko do mysql wpisujesz:
use mysql;
GRANT ALL PRIVILEGES ON nazwa_bazy.* TO 'nazwa_usera'@'nazwa_hosta_najczesciej_localhost' IDENTIFIED BY 'haselko usera' WITH GRANT OPTION;
nadaje to wszystkie uprawnienia dl usera nazwa_usera w hoście nazwa_hosta_najczesciej_localhost dla bazy nazwa_bazy. User jedynie nie może usuwać tej bazy ani tworzyć nowych...
W dokumentacji do mySQL 4.1 jest opisane jak zrobić, aby u zywał starszego typu haseł. Sam pamietam, że tego używałem, bo MySQL-Front nie chciał się połączyć.