Seite 1 von 1
MySQLdb - Fehler
Verfasst: Donnerstag 12. Juli 2007, 12:29
von andreaszdw
Hallo folgende Code habe ich auf einem Server im cgi-bin:
Code: Alles auswählen
#!/usr/bin/python
import cgi
import _mysql
print "Content-type: text/html"
print
db=_mysql.connect(host="localhost", user="XXXX", passwd="XXXX", db="XXXX")
Leider funktioniert dieses Programm nicht.
Weiß jemand warum?
MfG
Andreas
Verfasst: Donnerstag 12. Juli 2007, 12:36
von Y0Gi
Definiere "funktioniert nicht". Davon ab, dass da auch überhaupt keine Ausgabe erzeugt wird, kann es an der Konfiguration des Webservers, falschen Zeilenumbrüchen, einem fehlenden Modul oder sonstwas liegen.
MySQLdb importiert man übrigens als 'MySQLdb', du dagegen nur einen Teil in Form eines nativ kompilierten Moduls. Tutorials dazu liefert Google (z.B. welche bei DevShed.com).
Verfasst: Donnerstag 12. Juli 2007, 12:45
von andreaszdw
Also wenn ich jetzt z. B. noch diese Ausgabe anhänge,
wird auch nichts angezeigt.
Ich hatte schon etwas mehr Code, bis zur obigen Ausgabe konnte ich jedoch den Fehler verfolgen. Das heißt ab _mysql.connect, tritt der Fehler auf.
Der Fehler äußert sich darin, dass im Browser keine Ausgabe startet.
MfG
Andreas
Verfasst: Donnerstag 12. Juli 2007, 13:24
von jens
[wiki]Web-Skripte zum Laufen bringen[/wiki]

Neuer Versuch MySQLdb
Verfasst: Dienstag 24. Juli 2007, 12:49
von andreaszdw
Hallo,
warum klappt das nicht:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys, os
import cgitb; cgitb.enable()
import MySQLdb
print "Content-Type: text/html; charset=utf-8\n"
print "<h1>Hello MySQLdb</h1>"
conn = MySQLdb.connect(host='localhost', user='xxxxxxx', passwd='xxxxxx', db='xxxxxxx')
cursor = conn.cursor ()
cursor.execute ("SELECT VERSION()")
row = cursor.fetchone ()
print "server version:", row[0]
cursor.close ()
conn.close ()
Skripte ohne Datenbank funktionieren.
Re: Neuer Versuch MySQLdb
Verfasst: Dienstag 24. Juli 2007, 13:17
von Leonidas
andreaszdw hat geschrieben:warum klappt das nicht:
Steht im ``error.log``. Magst du da mal reinschauen?
Wo finde ich das?
Verfasst: Dienstag 24. Juli 2007, 13:23
von andreaszdw
Hallo,
wo finde ich die error.log?
MfG
Andreas
Verfasst: Dienstag 24. Juli 2007, 13:27
von Leonidas
Das hängt von deinem Server ab. Bei mir ist sie in ``/var/log/lighttpd/error.log``.
Re: Neuer Versuch MySQLdb
Verfasst: Dienstag 24. Juli 2007, 18:59
von jens
andreaszdw hat geschrieben:warum klappt das nicht:
Was klappt nicht genau??? Erhältst du ein Traceback von cgitb? Wenn ja, dann posten

Auszug aus error_log
Verfasst: Dienstag 24. Juli 2007, 20:21
von andreaszdw
Hallo,
hier ist ein Auszug aus der error_log:
[Tue Jul 24 21:17:23 2007] [error] [client 84.63.181.165] PythonHandler mod_python.cgihandler: Traceback (most recent call last):
[Tue Jul 24 21:17:23 2007] [error] [client 84.63.181.165] PythonHandler mod_python.cgihandler: File "/usr/lib/python2.3/site-packages/mod_python/apache.py", line 299, in HandlerDispatch\n result = object(req)
[Tue Jul 24 21:17:23 2007] [error] [client 84.63.181.165] PythonHandler mod_python.cgihandler: File "/usr/lib/python2.3/site-packages/mod_python/cgihandler.py", line 96, in handler\n imp.load_module(module_name, fd, path, desc)
[Tue Jul 24 21:17:23 2007] [error] [client 84.63.181.165] PythonHandler mod_python.cgihandler: File "/var/www/web526/html/cgi-bin/testmysql.py", line 15, in ?\n conn = MySQLdb.connect(host='localhost', user='xxxxx', passwd='xxxx', db='xxxx')
[Tue Jul 24 21:17:23 2007] [error] [client 84.63.181.165] PythonHandler mod_python.cgihandler: File "/usr/lib/python2.3/site-packages/MySQLdb/__init__.py", line 66, in Connect\n return Connection(*args, **kwargs)
[Tue Jul 24 21:17:23 2007] [error] [client 84.63.181.165] PythonHandler mod_python.cgihandler: File "/usr/lib/python2.3/site-packages/MySQLdb/connections.py", line 151, in __init__\n self.converter[types.StringType] = string_literal
[Tue Jul 24 21:17:23 2007] [error] [client 84.63.181.165] PythonHandler mod_python.cgihandler: TypeError: object does not support item assignment
Was ist da los?
Der Fehler kommt nur bei Skripten mit MySQLdb, andere Skripte laufen.
MfG
Andreas
Re: Auszug aus error_log
Verfasst: Mittwoch 25. Juli 2007, 08:42
von Leonidas
andreaszdw hat geschrieben:Was ist da los?
Der Fehler kommt nur bei Skripten mit MySQLdb, andere Skripte laufen.
So wie ich das sehe, scheint das ein Problem von MySQLdb zu sein.
Mach doch mal ein Skript, in dem die Version von MySQLdb angezeigt wird, etwa so:
Was zeigt es an? 0.9.2?
Kannst du MySQLdb aktualisieren oder es aktualisieren lassen? Der Autor von MySQLdb, Andy Dustman hat auf
django-users dazu etwas geschrieben, er empfiehlt auch, es zu aktualisieren.
MySQLdb
Verfasst: Mittwoch 25. Juli 2007, 08:49
von andreaszdw
Hallo,
wenn ich die Version wie folgt abfragen:
bekomme ich folgende Meldung:
(1, 2, 1, 'gamma', 2)
Mfg
Andreas
Verfasst: Mittwoch 25. Juli 2007, 08:56
von Leonidas
1.2.1 scheint jetzt gar nicht mal so alt zu sein. Du könntest aber trotzdem mal 1.2.2 versuchen.
Wie wurde denn das MySQLdb installiert? Der Autor schreibt ja, dass es meistens ein Setup-Problem ist.