MySQLdb - Fehler

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
andreaszdw
User
Beiträge: 24
Registriert: Donnerstag 12. Oktober 2006, 07:28

MySQLdb - Fehler

Beitragvon andreaszdw » Donnerstag 12. Juli 2007, 12:29

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
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Donnerstag 12. Juli 2007, 12:36

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).
andreaszdw
User
Beiträge: 24
Registriert: Donnerstag 12. Oktober 2006, 07:28

Beitragvon andreaszdw » Donnerstag 12. Juli 2007, 12:45

Also wenn ich jetzt z. B. noch diese Ausgabe anhänge,

Code: Alles auswählen

print "hallo"


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
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 12. Juli 2007, 13:24

[wiki]Web-Skripte zum Laufen bringen[/wiki] :lol:

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
andreaszdw
User
Beiträge: 24
Registriert: Donnerstag 12. Oktober 2006, 07:28

Neuer Versuch MySQLdb

Beitragvon andreaszdw » Dienstag 24. Juli 2007, 12:49

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Neuer Versuch MySQLdb

Beitragvon Leonidas » Dienstag 24. Juli 2007, 13:17

andreaszdw hat geschrieben:warum klappt das nicht:

Steht im ``error.log``. Magst du da mal reinschauen?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
andreaszdw
User
Beiträge: 24
Registriert: Donnerstag 12. Oktober 2006, 07:28

Wo finde ich das?

Beitragvon andreaszdw » Dienstag 24. Juli 2007, 13:23

Hallo,

wo finde ich die error.log?

MfG
Andreas
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 24. Juli 2007, 13:27

Das hängt von deinem Server ab. Bei mir ist sie in ``/var/log/lighttpd/error.log``.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Re: Neuer Versuch MySQLdb

Beitragvon jens » Dienstag 24. Juli 2007, 18:59

andreaszdw hat geschrieben:warum klappt das nicht:

Was klappt nicht genau??? Erhältst du ein Traceback von cgitb? Wenn ja, dann posten ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
andreaszdw
User
Beiträge: 24
Registriert: Donnerstag 12. Oktober 2006, 07:28

Auszug aus error_log

Beitragvon andreaszdw » Dienstag 24. Juli 2007, 20:21

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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Auszug aus error_log

Beitragvon Leonidas » Mittwoch 25. Juli 2007, 08:42

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:

Code: Alles auswählen

print MySQLdb.version_info

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
andreaszdw
User
Beiträge: 24
Registriert: Donnerstag 12. Oktober 2006, 07:28

MySQLdb

Beitragvon andreaszdw » Mittwoch 25. Juli 2007, 08:49

Hallo,

wenn ich die Version wie folgt abfragen:


Code: Alles auswählen

print MySQLdb.version_info


bekomme ich folgende Meldung:

(1, 2, 1, 'gamma', 2)

Mfg
Andreas
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 25. Juli 2007, 08:56

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]