Debain, php4 und mysql.so

Debain, php4 und mysql.so

am 21.04.2006 16:21:29 von Peter Marbaise

Hallo,

habe meinen Server neu aufgesetzt und dabei u.a. erstmalig darauf
verzichtet, Apache,mysql und php selbst zu kompilieren. Dafür habe ich
Apache2, php4 und mysql von Debian benutzt.

Nun habe ich aus meinem Backup mehrere MySQL Datenbanken zurückgespielt,
darunter u.a. eine, für die leidglich ein Benutzer existiert, der aber
nur Rechte für diese bestimmte DB hat.

Während das für den Kommandzeilen Client mysql selbst kein Problem
darstellt, ist dies für PHP ein Problem, die entsprechende Applikation
meldet dann, daß sie noch nicht mal einen Connect hinkriegt.

Ich habe dann ales mögliche ausprobiert, bis ich dann irgendwann einmal
ein ldd gemacht habe:

voyager:~# ldd `which mysql`
libreadline.so.4 => /lib/libreadline.so.4 (0x4001f000)
libncurses.so.5 => /lib/libncurses.so.5 (0x4004b000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4008b000)
libmysqlclient.so.14 => /usr/lib/libmysqlclient.so.14 (0x40145000)
libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0x4024d000)

voyager:~# ldd /usr/lib/php4/20020429/mysql.so
libmysqlclient.so.12 => /usr/lib/libmysqlclient.so.12
(0x40013000)

Warum bei einer Distribution ein Teil gegen libmysqlclient.so.14 bzw.
gegen die 12 Version gelinkt ist, erschließt sich mir nicht so ganz.

Aber wie korrigieren? Doch wieder dazu übergehen grundsätzlich Apache2
und php selbst kompilieren?


ciao Peter
--
WWW: http://www.marbaise.de Uptime: 44 Days 16 Hours
Debian 3.0 und WLan http://www.tuxoche.de/index.php/2/art/11/

Re: Debain, php4 und mysql.so

am 22.04.2006 10:44:35 von Andreas Scherbaum

Hallo,

Peter Marbaise wrote:
> habe meinen Server neu aufgesetzt und dabei u.a. erstmalig darauf
> verzichtet, Apache,mysql und php selbst zu kompilieren. Dafür habe ich
> Apache2, php4 und mysql von Debian benutzt.
>
> Nun habe ich aus meinem Backup mehrere MySQL Datenbanken zurückgespielt,
> darunter u.a. eine, für die leidglich ein Benutzer existiert, der aber
> nur Rechte für diese bestimmte DB hat.
>
> Während das für den Kommandzeilen Client mysql selbst kein Problem
> darstellt, ist dies für PHP ein Problem, die entsprechende Applikation
> meldet dann, daß sie noch nicht mal einen Connect hinkriegt.

Kannst du bitte etwas genauer spezifizieren, wie das Problem aussieht?
Meine Glaskugel ist gerade zum Polieren.

Mit "ein Benutzer" meinst du einen Benutzer in der Datenbank?
Wie hast du das Backup erstellt/zurückgespielt? Mit mysqldump & mysql?


> Warum bei einer Distribution ein Teil gegen libmysqlclient.so.14 bzw.
> gegen die 12 Version gelinkt ist, erschließt sich mir nicht so ganz.

Wie sieht deine sources.list aus?


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: Debain, php4 und mysql.so

am 22.04.2006 12:29:56 von Peter Marbaise

Andreas Scherbaum schrieb:
> Hallo,
>
> Peter Marbaise wrote:
>> habe meinen Server neu aufgesetzt und dabei u.a. erstmalig darauf
>> verzichtet, Apache,mysql und php selbst zu kompilieren. Dafür habe ich
>> Apache2, php4 und mysql von Debian benutzt.
>>
>> Nun habe ich aus meinem Backup mehrere MySQL Datenbanken zurückgespielt,
>> darunter u.a. eine, für die leidglich ein Benutzer existiert, der aber
>> nur Rechte für diese bestimmte DB hat.
>>
>> Während das für den Kommandzeilen Client mysql selbst kein Problem
>> darstellt, ist dies für PHP ein Problem, die entsprechende Applikation
>> meldet dann, daß sie noch nicht mal einen Connect hinkriegt.
>
> Kannst du bitte etwas genauer spezifizieren, wie das Problem aussieht?
> Meine Glaskugel ist gerade zum Polieren.

mysql> show grants for bloguser@localhost;
+----------------------------------------------------------- ------------------------------------------------------------ ----------+
| Grants for bloguser@localhost
------------------------------------------------------------ --------------------------------------------------------+
| GRANT USAGE ON *.* TO 'bloguser'@'localhost' IDENTIFIED BY PASSWORD
xxxxxx' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
CREATE TEMPORARY TABLES ON `blog`.* TO 'bloguser'@'localhost' |
+----------------------------------------------------------- ------------------------------------------------------------ ----------+
2 rows in set (0.00 sec)


Mit diesem User kann ich zu der DB connecten:

voyager:~# mysql -u bloguser blog -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 545 to server version: 4.1.11-Debian_4sarge2-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Die gleichen Zugangsdaten nehme ich auch für php und da bekomme ich die
Fehlermeldung, daß ein connect nicht möglich sei.

>
> Mit "ein Benutzer" meinst du einen Benutzer in der Datenbank?
> Wie hast du das Backup erstellt/zurückgespielt? Mit mysqldump & mysql?

mysqldump

>
>
>> Warum bei einer Distribution ein Teil gegen libmysqlclient.so.14 bzw.
>> gegen die 12 Version gelinkt ist, erschließt sich mir nicht so ganz.
>
> Wie sieht deine sources.list aus?

voyager:~# cat /etc/apt/sources.list
#deb file:///cdrom/ sarge main

deb http://ftp.de.debian.org/debian/ stable main
deb-src http://ftp.de.debian.org/debian/ stable main

deb http://security.debian.org/ stable/updates main

voyager:~#

ciao Peter
--
WWW: http://www.marbaise.de Uptime: 45 Days 12 Hours
erste Versuche mit Photostitch
http://www.tuxoche.de/index.php/3/art/8/

Re: Debain, php4 und mysql.so

am 22.04.2006 12:57:00 von Michael Fesser

..oO(Peter Marbaise)

>Mit diesem User kann ich zu der DB connecten:
>
>voyager:~# mysql -u bloguser blog -p
>Enter password:
>Welcome to the MySQL monitor. Commands end with ; or \g.
>Your MySQL connection id is 545 to server version: 4.1.11-Debian_4sarge2-log
>
>Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
>
>mysql>
>
>Die gleichen Zugangsdaten nehme ich auch für php und da bekomme ich die
>Fehlermeldung, daß ein connect nicht möglich sei.

Was ist die genaue Fehlermeldung?

Vermutlich ist der MySQL-Client in Deinem PHP zu alt. In MySQL 4.1 wurde
der Hash-Algorithmus für Passwörter geändert.

5.8.9. Password Hashing as of MySQL 4.1
http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html

22.3.1. Common Problems with MySQL and PHP
http://dev.mysql.com/doc/refman/5.0/en/php-problems.html

Micha

Re: Debain, php4 und mysql.so

am 22.04.2006 21:35:06 von Peter Marbaise

Michael Fesser schrieb:
> .oO(Peter Marbaise)
>
>> Mit diesem User kann ich zu der DB connecten:
>>
>> voyager:~# mysql -u bloguser blog -p
>> Enter password:
>> Welcome to the MySQL monitor. Commands end with ; or \g.
>> Your MySQL connection id is 545 to server version: 4.1.11-Debian_4sarge2-log
>>
>> Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
>>
>> mysql>
>>
>> Die gleichen Zugangsdaten nehme ich auch für php und da bekomme ich die
>> Fehlermeldung, daß ein connect nicht möglich sei.
>
> Was ist die genaue Fehlermeldung?
>
> Vermutlich ist der MySQL-Client in Deinem PHP zu alt. In MySQL 4.1 wurde
> der Hash-Algorithmus für Passwörter geändert.

??? das war bereits das Problem meines ersten Postings

ciao Peter
--
WWW: http://www.marbaise.de Uptime: 45 Days 21 Hours
Debian 3.0 und WLan http://www.tuxoche.de/index.php/2/art/11/

Re: Debain, php4 und mysql.so

am 22.04.2006 21:53:03 von Michael Fesser

..oO(Peter Marbaise)

>??? das war bereits das Problem meines ersten Postings

Was spricht denn gegen den Einsatz eines aktuellen PHP mit aktuellem
MySQL-Client?

Micha

Re: Debain, php4 und mysql.so

am 22.04.2006 22:15:55 von Peter Marbaise

Michael Fesser schrieb:
> .oO(Peter Marbaise)
>
>> ??? das war bereits das Problem meines ersten Postings
>
> Was spricht denn gegen den Einsatz eines aktuellen PHP mit aktuellem
> MySQL-Client?

mein erstes Posting immer noch nicht gelesen? es ging u.a. darum, daß
mysql gegen libmysqlclient.so.14 und php4 gegen libmysqlclient.so.12
gelinkt ist.

ich sehe aber schon, es wird wohl nur gehen, wenn ich zukünftig Apache
und php4 wieder selbst übersetze (was ich eigentlich vermeiden wollte)

ciao Peter
--
WWW: http://www.marbaise.de Uptime: 45 Days 22 Hours
Debian 3.0 und WLan http://www.tuxoche.de/index.php/2/art/11/

Re: Debain, php4 und mysql.so

am 22.04.2006 22:45:05 von do.not.REMOVETHAT

Peter Marbaise schrieb:

> Die gleichen Zugangsdaten nehme ich auch für php und da bekomme ich die
> Fehlermeldung, daß ein connect nicht möglich sei.

Wenn schon der connect fehlschlägt, dann liegt's ja nicht an
Benutzernamen und Passwort, sondern an dem Server bzw. dessen Angabe.
Wenn Du Dich z.B. versuchst, über Netzwerk zu connecten und nur lokale
Verbindungen möglich sind (d.h. MySQL geht gar nicht mit TCP/IP), dann
taucht z.B. dieser Fehler auf.

Ich habe auch mehrmals Apache2, MySQL und PHP4 auf Sarge laufen und es
geht wunderbar. Prinzipell sehe ich da kaum ein Problem, wobei es halt
nur für wirklich faule ist.

Grüße, Matthias

Re: Debain, php4 und mysql.so

am 23.04.2006 00:14:49 von Axel Schwenke

Peter Marbaise wrote:
> Michael Fesser schrieb:
>>
>> Was spricht denn gegen den Einsatz eines aktuellen PHP mit aktuellem
>> MySQL-Client?
>
> mein erstes Posting immer noch nicht gelesen? es ging u.a. darum, daß
> mysql gegen libmysqlclient.so.14 und php4 gegen libmysqlclient.so.12
> gelinkt ist.

Ersteres ist MySQL-4.1.x, letzteres MySQL-4.0.x. Beide Versionen
sind nur mit Einschränkungen kompatibel. Der 4.0er Client kennt
keine prepared Statements (verwendet in php/mysqli) und man muß
sich darum kümmern, daß der 4.1er Server defaultmäßig andere
Paßwort-Hashes für das MySQL-Login verwendet:

http://dev.mysql.com/doc/refman/4.1/en/old-client.html

> ich sehe aber schon, es wird wohl nur gehen, wenn ich zukünftig Apache
> und php4 wieder selbst übersetze (was ich eigentlich vermeiden wollte)

Prinzipiell sollte PHP auch mit libmysqlclient.so.14 spielen,
auch wenn es ursprünglich gegen die .12 gelinkt wurde. Prepared
Statements gehen dann natürlich nicht, die gibts aber eh nur ab
PHP 5.x mit der mysqli Extension.


XL

Re: Debain, php4 und mysql.so

am 23.04.2006 10:44:41 von Peter Marbaise

Axel Schwenke schrieb:
>>> Was spricht denn gegen den Einsatz eines aktuellen PHP mit aktuellem
>>> MySQL-Client?
>> mein erstes Posting immer noch nicht gelesen? es ging u.a. darum, daß
>> mysql gegen libmysqlclient.so.14 und php4 gegen libmysqlclient.so.12
>> gelinkt ist.
>
> Ersteres ist MySQL-4.1.x, letzteres MySQL-4.0.x. Beide Versionen
> sind nur mit Einschränkungen kompatibel. Der 4.0er Client kennt

ja schon klar, nur halte ich das innerhalb einer Distri für einen Bug,
nun gut,ich habe die entsprechenden Sources von Debian heruntergeladen
und mysql.so neu übersetzt.

ciao Peter
--
WWW: http://www.marbaise.de Uptime: 45 Days 23 Hours
Debian 3.0 und WLan http://www.tuxoche.de/index.php/2/art/11/