![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 12.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Jakoś przebrnąłem przez instalację IIS na w2k3 , php i mySql'a. Niby wszystko ok, ale nie mogę się połączyć z bazą przez skrypt php. Do administrowania bazą używam EMS administartor czy jakos tak i bez problemów udaje mi sie skomunikować z mysql'em. Stworzyłem sobie bazy z tabelami, które są wypełnione oraz użytkowników o odpowiednich prawach, jednak wywołanie :
powoduje wywalenie komunikatu "Nie można ..." Jeśli ktoś miał podobny problem, bo widziałem kilka podobnych wątków jednak bez rozwiązania to poproszę o jakąś radę, ewentualnie gdzie można sprawdzić jaka jest przyczyna braku komunikacji php z myql w momencie próby podłączenia się do bazy danych. Piszę w tym dziale, bo być może istnieje jakiś problem z prawami w IIS dla użytkowników korzystających z plików php i bazy pozdrawiam Acro |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 12.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Znalazłem . Niżej opisałem rozwiązanie, może się komuś przyda, bo widziałem na różnych forach podobne problemy. Mianowicie parser PHP4 nie jest w stanie połączyć się z bazą MySQL 4.1, gdy ta druga zainstalowana jest z domyślnymi opcjami i konto użytkownika bazy danych jest zabezpieczone hasłem. Konta użytkowników serwera bazy danych MySQL są zapisywane w bazie o nazwie "mysql", w tabeli "user". W MySQL od wersji 4.1 zaimplementowano obsługę 41-bajtowych hashy. PHP4 obsługuje jedynie 16-bajtowe hashe. Struktura 16-bajtowych hashy wygląda następująco: 6f8c114b58f2ce9e, podczas gdy struktura 41-bajtowych wygląda tak: *43c8aa34cdc98eddd3de1fe9a9c2c2a9f92bb2098d75. 41-bajtowe hashe są dłuższe i zawsze zaczynają się znakiem "*", co nie miało miejsca w ich 16-bajtowej odmianie. Można jednak spowodować aby baza MySQL 4.1 używała 16-bajtowych hashy, dzięki czemu parser PHP4 obsłużyłby autoryzowane połączenie z tą bazą danych. W tym celu należy uruchamiać serwer bazy danych z parametrem "--old-passwords". Jednak parametrem "--old-passwords" mozna uruchomić mysqld.exe natomiast takiego parametru nie można użyć w mysqld-nt.exe, a ten właśnie plik był u mnie uruchamiany jako service na W2K3. Dlatego musiałem znaleźć pośrednie rozwiązanie: logujemy się do bazy w trybie tekstowym i zmieniamy hasło użytkownika na stary format:
i wszystko śmiga jak należy. P.S. Mam pytanie do ekspertów od MySQL, którzy przeglądają to forum. Jakie byłyby konsekwencje gdybym zamiast pliku mysqld-nt.exe użył do uruchomienia mysql'a pliku mysqld.exe? pozdrawiam Acro6 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 03:25 |