Welche Version von MySQL läuft denn nun mit conpresso?

Fragen zur Installation von ConPresso 4 werden in diesem Forum diskutiert.
Antworten
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 01:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Welche Version von MySQL läuft denn nun mit conpresso?

Beitrag von Gandalf »

Hallo zusammen,

nach dem ich eine zeitlang versucht hatte eine lauffähige conpresso Installation mit einer MySQL V3.23.56 unter MySql 4.x oder 5.x erfolglos zum Laufen zu bringen, möchte ich wissen, welche Erfahrungen Ihr mit den verschiedenen MySQL Versionen gesammelt habt.

Beim Versuch mit einer Version größer 3.x das Project zu starten, kommt es zu einem Fehler, der aussagt, dass der verwendete connect String in der Datei ..\_include\db_mysql.inc.php Zeile 57:

Code: Alles auswählen

$this->Link_ID=mysql_connect($this->Host, $this->User, $this->Password);
offensichtlich nicht mehr "passt".

Und nu..., gibt es doch kaum noch Provider die eine alte MySQL release vorhalten, was tun ?

Gruß Gandalf
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

ConPresso läuft mit MySQL 3, 4 und 5 (mit deaktiviertem strict_mode).

Die Fehlermeldung war sicher länger als der ConPresso-Code, den Du hier postest. Meist steht auch der Grund dabei... oder stand da etwa, daß der Code "offensichtlich nicht mehr passt"?

Unter uns gesagt würde ich behaupten, daß Du beim Umziehen Deiner lauffähigen ConPresso-Version einfach nur eines von folgendem vergessen hast:
- Zugangsdaten an die neue DB anzupassen
- in der neuen DB dem entsprechenden User entsprechende Recht zu geben

was mich an eines Deiner letzten Postings erinnert:
http://community.conpresso.de/viewtopic ... ter=#16052
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 01:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Beitrag von Gandalf »

Hallo Markus,

nun ich bin mir sicher keine Userprobleme bzw. Berechtigungsprobleme zu haben. Hier die Fehlermeldung von conpresso:

Code: Alles auswählen

Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in c:\inetpub\wwwroot\conpresso\_include\db_mysql.inc.php on line 57

Database error:
Link-ID == false, connect failed 
(0)

Ich denke schon, dass es hier Probleme mit der MySQL Version 4.1 bzw. 5.x auf sich hat. Woran könnte es sonst liegen?

Gruß Gandalf
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Tja... über eine Million Treffer in Google...

hier mal die offizielle Seite zu Deinem Problem
http://dev.mysql.com/doc/refman/5.0/en/old-client.html
die in Dutzenden Foren zitiert wird...

Und wenn Du lieber Klartext magst
http://62.153.231.87/alk/Help/dbmysql.htm
ganz unten
Eintrag in der Konfigurationsdatei My.ini des Servers:

[mysqld]
...
old_passwords=1
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 01:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Beitrag von Gandalf »

Hallo Markus,

die Thematik ist bei weitem nicht so trivial wie von Dir per "Fingerzeig" angedeutet wurde :!:

Ja, es stimmt, dass mittels dem Parameter old_password=1 in der Datei my.ini die Problematik des Connectstrings behoben ist, aber nur wenn:
- der MySQL Server nach der Änderung neu gestartet wurde
- und das Passwort des conpressoUsers NEU gesetzt wird

Denn dann wird aus dem 41 Byte langem Hashwert des Passwortes wieder der "alte" 16 Byte lange Hashwert erstellt.

Betroffen sind ALLE MySQL Version ab 4.1!

Das eigentliche Grundproblem liegt in der MySQL Client API von PHP. Bis zur PHP Version 5.1 wurde immer die API Version 3.23.49 eingesetzt, die eben die 41 Byte Hashwerte nicht verarbeiten/erzeugen kann.

Für die PHP Version ab 5.1 gibt es zumindest für den Windowsinstaller gar keine MySQL API mehr. Diese muss händisch nachgeladen (php_mysql.dll) und entsprechend in der php.ini aktiviert werden. Dann findet der connect auch mit den 41 Byte Hashwerten statt A B E R conpresso kommt dann nicht mehr mit, denn nach erfolgreichem connect wird die Verzeichnisebene um den Startordner (wie bei mir) conpresso abgeschnitten und nichts geht mehr :cry:

Also ich bleibe dabei, prinzipiell hat conpresso mit MySQL größer 4.0 eben noch Probleme, aber ich denke balu und seine Mannen werden auch dieses Problem mittelfristig lösen (müssen).

P.S.: Konstruktiv ist besser als destruktiv....

So long Gandalf
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Klingt alles sehr interessant... klingt aber auch danach, daß Du die Datenbank nicht per SQL-Dump übertragen hast, sondern die Dateien direkt auf den Server kopiert hast.
Bei einem SQL-Dump und anschließendem Restore ist das alles kein Problem, weil der weder etwas mit Usern noch mit Passwörtern zu tun hat. Und ConPresso selbst speichert das Passwort ja im Klartext, hat also mit irgendwelchen Codierungen absolut nichts zu tun.
Installationsvorraussetzung (und das gilt auch für einen Serverwechsel) ist nun eben mal ein funktionierendes PHP und eine vorhandene funktionierende Datenbank, sprich: Der User ist schon angelegt. ConPresso ist kein SQL-Verwaltungstool.

Und verstehe mich bitte nicht falsch: Ich finde das alles sehr interessant und will Dir auch gerne helfen. Nur ist es kein ConPresso-Problem, wenn PHP (aufgrund einer nicht installierten API oder grundsätzlich nicht funktionierenden mysql_connect()'s) mit mySQL nicht reden mag.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 01:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Beitrag von Gandalf »

Hallo Markus,

tja indirekt hat es schon was mit conpresso zu tun, da hier keine Unterstützung der neuen PHP API stattfindet, die bei vielen Providern mit MySQL 5.x installiert ist.

Also:

Lokales System:

- MySQL 3.x
- alte PHP API
- conpresso MySQL USER angelegt (es dreht sich hier nicht um die internen conpresso User)
- conpresso installiert
- Website eingebunden etc.
- alles bestens

Providersystem:

- MySQL 5.x
- alte PHP API
- conpresso MySQL User angelegt (wie auf dem lokalen System)
- MySQL DB per FTP eingebunden
- conpresso Dateien ebenso

Hierbei findet nun das Problem des connect Strings auf die DB statt. Da in der MySQL Datenbank (nicht vom conpresso Projekt) die Userpasswörter mit 41 Byte Hashwert angelegt sind....

Wenn dann die neue API installiert wird, klappt wie gesagt der DB connect, aber conpresso streckt die Flügel. Letztlich habe ich halt den Parameter old_password=1 in die my.ini geschrieben und das Passwort für den conpresso DB Account neu gesetzt, dann wird wieder ein 16 Byte Hashwert abgelegt und conpresso kann die Arbeit korrekt aufnehmen.

Gruß Gandalf
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

indirekt hat es schon was mit conpresso zu tun, da hier keine Unterstützung der neuen PHP API stattfindet, die bei vielen Providern mit MySQL 5.x installiert ist.
Wie lautet denn der PHP-befehl mysql_connect (http://www.php.net/manual/de/function.mysql-connect.php) in der von Dir benutzten Version? Müsste man ja wissen, um entsprechend programmieren zu können...

Und jetzt hast Du Dein Problem ja noch mal selbst geschildert
MySQL DB per FTP eingebunden
Probiere es doch bitte mit einem SQL-Dump! Was Du da machst geht im Notfall gerade noch mit identischen mySQL-Versionen. Zwischen verschiedenen Versionen ist das Harakiri.

Hier ist auch die Anleitung dafür
http://dev.mysql.com/doc/refman/5.0/en/ ... -arch.html

ConPresso hat mit der Speicherung der mySQL-Userdaten nichts zu tun! Wie sollte ConPresso dann Dein Problem mit dem FTP-Upload lösen können?

Das was Du von ConPresso erwartest ist vergleichbar mit dem Wunsch sich seine Eltern aussuchen zu können... :wink:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 01:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Beitrag von Gandalf »

Hallo Markus,
Wie lautet denn der PHP-befehl mysql_connect
ich habe keine conpressoresourcen angepaßt. Es handelt sich um den in conpresso vorhandenen connect String, siehe frühere Post.
ConPresso hat mit der Speicherung der mySQL-Userdaten nichts zu tun!
Sehr richtig, sagt ja auch keiner sondern viel mehr die Tatsache, dass conpresso generell mit der neuen PHP API (welche u. a. die Unterstützung des 41 Byte Hashpasswortes für MySQL ab 4.1 beinhaltet) nicht lauffähig ist. Probiere es doch einfach mal aus.

Auch kann man ohne der oben beschriebenen Anpassung in der Datei my.ini nicht mit conpresso und MySQL Datenbänken ab 4.1 arbeiten.

Gruß Gandalf
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

So, dann will ich mich doch mal einmischen. Mit der neuen MySQL-API meinst Du vermutlich die "MySQL Improved" (mysqli) - Funktionen?

Das groesste Problem hierbei ist, dass die Umstellung leider nicht ganz so trivial ist und es mit mysqli im Allgemeinen noch einige Probleme gibt.

Es ist z.B. je nach PHP-Version nicht so einfach, beide Funktionsbibliotheken parallel laufen zu lassen. Vor kurzem bin ich ueber ein "Kompatibilitaetsscript" gestolpert, habe mir das aber noch nicht genauer anschauen koennen:

http://www.coggeshall.org/oss/mysql2i/

Grundsaetzlich gilt aber natuerlich, dass die Entwicklung nicht stehen bleibt - auch nicht die von ConPresso. Im Moment ist es nur einfacher, MySQL zu sagen, dass es sich rueckwaertskompatibel verhalten soll, als ConPresso anzupassen.

Balu
PS: Das Fehlermeldung betrifft uebrigends nicht ConPresso, sondern die PHP-Version, bzw. die eingebundenen MySQL-Funktionen, auch wenn die Fehlermeldung "_include\db_mysql.inc.php" anders aussieht.

PPS: Viele aktuelle Linux-Distributionen haben uebrigends old_passwords standardmaessig auf 1 gesetzt, weil es eben noch sehr viele Anwendungen gibt, die sonst nicht mehr funktionieren wuerden. Debian Sarge: mysql Ver 14.7 Distrib 4.1.11, for pc-linux-gnu (i386)
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 01:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Beitrag von Gandalf »

Hallo balu,

ich sehe Du verstehst mich.

Gruß Gandalf
Antworten