mysql funktioniert nicht über Konsole
koken
- webserver
Hallo zusammen,
Ich habe unter linux (ubuntu) einen lampp-Server installiert. Natürlich mit php und mysql und allem. Wenn ich jedoch ein php-Script über die Konsole ausführen will, funktioniert mysql nicht und es kommt die Fehlermeldung
"Call to undefined function mysql_connect() in /opt/lampp/htdocs/test.php on line 2"
Wenn ich das Script "normal" über http ausführe, funktioniert alles.
Hat einer eine Idee, woran das liegen kann? Alleine komme ich da nicht weiter.
Vielen Dank schonmal für eure Hilfe,
Koken
n'abend,
Wenn ich das Script "normal" über http ausführe, funktioniert alles.
Hat einer eine Idee, woran das liegen kann? Alleine komme ich da nicht weiter.
Wenn du dir im Webserver-Kontext mal <?php echo phpinfo(); ?>
ausgeben lässt und das selbe Spiel in der Konsole mit php -i
machst, erkennst du, dass mod_php und php-cli weder die selbe Konfiguration nutzen, noch die gleichen Module einkompiliert haben müssen.
weiterhin schönen abend...
Wenn du dir im Webserver-Kontext mal <?php echo phpinfo(); ?> ausgeben lässt und das selbe Spiel in der Konsole mit
php -i
machst, erkennst du, dass mod_php und php-cli weder die selbe Konfiguration nutzen, noch die gleichen Module einkompiliert haben müssen.
ah, das wusste ich nicht. Dank deines Hinweises habe ich nun mysql für php-cli nachinstalliert, aber habe nun direkt das nächste Problem: Beim ausführen des Scripts über die Konsole kommt die Meldung
Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /opt/lampp/htdocs/test.php on line 2
er versucht also über '/var/run/mysqld/mysqld.sock' eine mysql-Verbindung aufzubauen. Der MySql-Server, mit dem er sich verbinden soll ist aber in /opt/lampp/lib/mysql...
Daher habe ich versucht ihm das zu sagen und in der Datei "/etc/mysql/my.cnf" überall wo "socket = /var/run..." steht gegen "socket = /opt/lampp/var/mysql/mysql.sock" zu ersetzen, so wie es in der my.cnf vom lampp steht. Leider ohne jeglichen Erfolg. Hast du da auch noch einen Tipp für mich?
n'abend,
Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /opt/lampp/htdocs/test.php on line 2
Dann sag ihm entweder in der php-cli.ini wo die mysqld.sock liegt, oder gib die Info zur Laufzeit im Script an.
Daher habe ich versucht ihm das zu sagen und in der Datei "/etc/mysql/my.cnf" überall wo "socket = /var/run..." steht gegen "socket = /opt/lampp/var/mysql/mysql.sock" zu ersetzen, so wie es in der my.cnf vom lampp steht. Leider ohne jeglichen Erfolg. Hast du da auch noch einen Tipp für mich?
Wenn dein Motor zu viel Sprit schluckt, gibst du also der Tankstelle die Schuld, statt deinen Vergaser zu prüfen? Repariere deine my.cnf und gib die entsprechenden Werte in der php.ini oder im Script an.
In jedem Fall möchtest du dir aber mysqli oder PDO anschauen. Ich für meinen Teil setze zwischenzeitlich nur noch PDO ein. Ein kleiner Wrapper drum herum macht das ganze noch etwas komfortabler...
weiterhin schönen abend...
... ich musste nur das richtige php das script ausführen lassen (/opt/lampp/.../php /.../script.php).
In jedem Fall möchtest du dir aber mysqli oder PDO anschauen. Ich für meinen Teil setze zwischenzeitlich nur noch PDO ein. Ein kleiner Wrapper drum herum macht das ganze noch etwas komfortabler...
Leider hatte ich keine freie Wahl was die DB betrifft. Die Links werde ich mir trotzdem anschauen, um etwas mehr Verständnis zu erlangen. Danke nochmal für deine Hilfe, wünsche dir auch noch nen schönen Abend.