PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 1. vServer mySQL 4.1 | 2. vServer PHP,Apache



Primusio
21.12.04, 07:51
Hallöchen Community,
ich habe ein relativ großes Problem und hoffe sehr, dass mir jemand helfen kann.

Ich besitze 2 vServer.
1. vServer: PHP4, mySQL 3.23.58, Apache, Confixx 3.0 ...
2. vServer: mySQL 4.1.7

Den zweiten vServer habe ich mir zugelegt, um eine mySQL 4.1 Datenbank zu installieren, denn wenn ich die auf dem ersten vServer installieren würde, funktioniert mein Confixx nicht mehr.
Und dies benötige ich um Benutzer etc. anzulegen.

Nun möchte ich PHP Seiten von vServer 1 aufrufen können, die die Datenbank von vServer 2 benutzen.

Die Konfiguration von mySQL ist soweit glaube ich korrekt.

Ich kann von meinem Client (dank OLD_PASSWORD) per Konsole auf den Server zugreifen, Daten ändern ...

Wenn ich allerdings auv vServer 1 eine PHP Seite aufrufe, mit einem Datenbankaufruf kommt die Fehlermeldung

mysql_query(): Unable to save result set in /var/www/web5/html/blabla.php on line X

Ich vermute, dass das Problem bei PHP bzw. dem Apache liegt. Finde in Suchmaschinen allerdings keinen Hinweis auf dieses Problem. Kann mir bitte jemand helfen, einen Tipp geben ...

MfG
Primusio

Pingu
21.12.04, 08:17
Wenn ich allerdings auv vServer 1 eine PHP Seite aufrufe, mit einem Datenbankaufruf kommt die Fehlermeldung

mysql_query(): Unable to save result set in /var/www/web5/html/blabla.php on line X
Interessant wären jetzt noch zwei Dinge: Was steht an dieser Stelle in blabla.php?
Wie öffnest Du in PHP die Datenbank? Ich hoffe Du hast es von localhost geändert auf die Adresse des 2. vServers?

Pingu

Primusio
21.12.04, 08:36
Ja ich habe natürlich die IP statt localhost eingetragen und den entsprechend berechtigten Benutzer. Statt blabla steht dort jede PHP Datei, die Daten abrufen will, z.B. index.php

Hoffe damit kannst du etwas anfangen und mir etwas helfen.

Pingu
21.12.04, 08:42
Hoffe damit kannst du etwas anfangen und mir etwas helfen.
Nö.

Ich meine: Was steht in dem PHP-File an der jeweilige Stelle wo die Fehlermeldung auftaucht?
Interessant wäre auch: Existiert eine Fehlerauswertung im PHP-File? D.h. wenn eine Abfrage der Datenbank nicht erfolgreich war, wird dann der zurück gelieferte Fehler ausgewertet (mysql_error() (http://de.php.net/mysql-error) und mysql_errno() (http://de.php.net/manual/de/function.mysql-errno.php))? Wie ist diese Fehlermeldung?

Pingu

Primusio
21.12.04, 08:48
An der jeweiligen Stelle steht entweder ein mysql_query() oder ein mysql_fetch_array().

echo mysql_error();

gibt aus

"Unknown MySQL error"


MfG
Primusio

marce
21.12.04, 09:00
nochmals zur Klarstellung:

mit dem Client von MySQL kommst Du von Server 1 auf Server 2?

Primusio
21.12.04, 09:02
Ganz genau und dort kann ich auch alles bearbeiten etc.

Was mich zu dem Schluss führt, dass es nur an PHP oder dem Apache liegen kann.

marce
21.12.04, 09:09
Schreib Dir doch mal ein kleines Script, welches nur ganz rudimentär sich auf die DB connecten will und ein select macht.

... und dann einfach jeden Schritt überprüfen, wo es hängt.


Ach ja: per Console - das war auch der gleiche Login wie im Script?

Pingu
21.12.04, 09:18
Ok, ich habe die Lösung über Google gefunden.

Du hast nicht alles gesagt. Denn dies ist keine Fehlermeldung sondern eine Warning. Ichz hoffe Du weißt den Unterschied zwischen Error und Warning?

Die Antwort steht, eigentlich wie so üblich in der FAQ: http://de3.php.net/manual/de/faq.databases.php#faq.databases.upgraded

Pingu

Primusio
21.12.04, 09:20
Ja aber ich kann PHP nicht neu kompilieren.

Nur ein eingerichteter Benutzer greift auf die 4.1 Datenbank zu. Alle anderen sollen weiterhin die lokale 3.23 nutzen. Auch Confixx muss weiterhin funkionieren, sonst hätte ich ein großes Problem.

Tomek
21.12.04, 09:33
Ich muss ein paar Fragen stellen: Warum überhaupt MySQL 4.1? Wieso nicht 4.0? Warum überhaupt ein 2. vserver? Wegen der Performance? Und was ist, wenn der 2. vserver genau auf demselben Server läuft, wie der 1. vserver?

heatwalker
21.12.04, 09:35
Hast du in der php.ini den Wert für mysql.default.host gesetzt??

Primusio
21.12.04, 09:50
@Tomek
Warum mysql 4.1 ? Ist eine Versuchsdatenbank um die neuen Funktionen zu testen.
Warum ein zweiter vServer ? Um nicht auf einem System 2 mySQL Server parallel laufen zu lassen
Was ist wenn vServer 2 auf dem selben Server läuft ? Eher unwahrscheinlich, da es ein anderer Anbieter ist.

@heatwalker
Nein habe ich nicht, ist doch nicht nötig, wenn ich dies in meinem PHP Script im Connect Teil mit angebe oder ?
Ausserdem würde ich es ja dann wieder für jeden Nutzer ändern.

Pingu
21.12.04, 09:53
Ja aber ich kann PHP nicht neu kompilieren.

Nur ein eingerichteter Benutzer greift auf die 4.1 Datenbank zu. Alle anderen sollen weiterhin die lokale 3.23 nutzen. Auch Confixx muss weiterhin funkionieren, sonst hätte ich ein großes Problem.
Hast Du die FAQ gelesen?
Was steht da?
Da steht nur, daß php seinen internen mysql-client verwendet. Das KANN muß aber nicht zu Problemen führen, wenn parallel Anwendungen laufen, die eine andere mysql-client Version verwenden.
Genau das ist der Unterschied zwischen einer Warnung und einem Error. Bei der Warnung kann es funktionieren, muß aber nicht. Beim Error funktioniert es nicht.


Hast du in der php.ini den Wert für mysql.default.host gesetzt??
Hat damit nichts zu tun. Braucht man nur, wenn man mysql_connect()-Aufrufe ohne Parameter machen möchte. Aber wer macht das schon?


Ich muss ein paar Fragen stellen: Warum überhaupt MySQL 4.1? Wieso nicht 4.0? Warum überhaupt ein 2. vserver? Wegen der Performance? Und was ist, wenn der 2. vserver genau auf demselben Server läuft, wie der 1. vserver?Wenn erglaubt dadurch eine bessere Performance zu erhalten, dann laß ihm doch den Spaß. Mir erschließt sich auch der Sinn nicht, warum Confixx nicht mit der neueren Version zusammenarbeiten soll. Aber wenn er meint.

Pingu

Pingu
21.12.04, 09:56
Warum mysql 4.1 ? Ist eine Versuchsdatenbank um die neuen Funktionen zu testen.Du testest neue Funktionen live im Internet. WOW. RESPEKT.
Meiner einer hat für sowas einen Rechner um die Ecke stehen.

Pingu

Primusio
21.12.04, 10:04
Es geht nicht um die Performance aber es ist 100%ig so, dass Confixx Premium 2003 nicht mit mySQL 4.1 zusammenarbeitet, mit 4.0 schon.

Es geht darum, dass ich ein Testsystem habe, wo nur immer die neuste Datenbank läuft und ein Produktivsystem, auf dem alles so bleibt wie es vorerst ist.

@Pingu
Es tut mir sehr leid, dass ich mit diesem FAQ nicht soviel anfangen kann.
Das einzige was ich da richtig verstehe ist, dass ich PHP neu kompilieren soll.
Aber dazu müsste ich doch die Headerdateien von 4.1 benutzen oder ? Sonst ist doch alles wieder wie vorher ? Aber dann wäre ja das Risiko groß, dass sich irgendwas nicht verträgt.

heatwalker
21.12.04, 10:06
Hat damit nichts zu tun. Braucht man nur, wenn man mysql_connect()-Aufrufe ohne Parameter machen möchte. Aber wer macht das schon?
Pingu

Da lass ich mich gerne belehren. :)