Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> IIS 6.0 + php +Mysql - problrm z podlaczeniem do bazy
acro6
post
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 :

  1. <?php
  2. $connection = mysql_connect("127.0.0.1", "user", "password") or
  3. die ("Nie można nawiązać połączenia z bazą danych");
  4. ?>

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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
acro6
post
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:

  1. 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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 03:25