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:
SET PASSWORD FOR uzytkownik@nazwa_hosta = OLD_PASSWORD ('twoje_haslo');
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