Lokale Datenbankverbindung schlägt fehl!

bsdxroot

Mitglied
Hallo, folgendes Problem:

ich versuche gerade mit einem Programm eine Verbindung zu einer MySql DB
herzustellen die auf dem gleichen Rechner läuft wie mein Programm.

(-> Suse 8.2, mysql Ver 11.18 Distrib 3.23.55, for suse-linux (i686) )
(-> Server version: 3.23.55-Max-log )

Der user: "software" mit dem Masterpasswort "" existiert und hat volle rechte auf alles in der DB mysql.

Code:
#include <iostream>
#include "/usr/include/mysql/mysql.h"

#define def_host_name "localhost"
#define def_user_name "software"
#define def_password  NULL
#define def_db_name   "mysql"
#define def_socket    "/var/lib/mysql/mysqld.sock"

using namespace std;

MYSQL *conn;

int main ( int argc , char *argv[] )
{
    MYSQL_RES *datensatz;
    MYSQL_ROW row;
    int zaehler, ergebnis;
    
    conn=mysql_init( NULL );
    
    if (! mysql_real_connect(conn 		,
			def_host_name	,
			def_user_name	,
			def_password 	,
			def_db_name	,
			3306		,
			def_socket	,
			0 ) )
	{
	    cout << "Datenbankverbindung fehlgeschlagen!" << endl;
	    mysql_close ( conn );
	    exit ( 1 );
	}
    
 . . .

grundsätzlich bekomme ich die wunderschöne aber dennoch nervige antwort:
"Datenbankverbindung fehlgeschlagen!".
Ich habe schon sämtliche #defines geändert, gemischt und auch mal mit root
und passendem kennwort probiert -> alles vergebens.
wenn ich selber

BASH: mysql -u software

aufrufe komme ich ohne probleme auf die DB und kann auch queries
ausführen.

Ich bin soweit mit meinem Latein (C *g) am ende.

Weiss hier jemand eventuell Rat ?
 
Hast du das ganze mal ohne die #DEFINEs versucht?
Nur so zur kontrolle?
Ist auch nur ne vermutung, aber sollte Password nicht einen leeren String (also "") anstatt NULL übergeben?

Greetz...
Sinac
 
wenn es das wäre. habe ich auch ausprobiert - leider fehlanzeige.

NULL ist doch ein definiertes NICHTS. ;-)
 
Zuletzt bearbeitet:
Yoah,hät ja sein können =)
War auch nur sone Vermutung ins Leere...
Ich sitz auch grad beim Datanbank zugriff mit C++, ist echt komplizierter als ich dachte

Greetz...
Sinac
 
Habe das problem gefixt!
Anstatt der Portangabe 3306 habe ich ein NULL gesetzt. jetzt geht es !

Tnx @ all !

Code:
 . . .
    
    if (! mysql_real_connect(conn 		,
			def_host_name	,
			def_user_name	,
			def_password 	,
			def_db_name	,
			NULL		,
			def_socket	,
			0 ) )
	{
	    cout << "Datenbankverbindung fehlgeschlagen!" << endl;
	    mysql_close ( conn );
	    exit ( 1 );
	}
 . . .
 
Zurück