• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

mysql_connect funktioniert nicht

Hi liebe Tux Gemeinde,

Wenn ich versuche mit mysql_connect auf die Datenbank zuzugreifen erhalte ich eine Fehlermeldung:

ID; $name_db=$ds -> Name; $status_db=$ds -> Status; if (strtolower($name_db)==strtolower($Name) && $status_db>0) { $Autorisiert=TRUE; break; } } if ($Autorisiert) { $Event="Login"; $IP=$_SERVER['REMOTE_ADDR']; $query="INSERT INTO Logfile (Name,Event,IP) VALUES ('$name_db','$Event','$IP')"; $dummy=mysql_query($query); //echo ""; } else { $Event="Login failed"; $IP=$_SERVER['REMOTE_ADDR']; $query="INSERT INTO Logfile (Name,Event,IP) VALUES ('$Name','$Event','$IP')"; $dummy=mysql_query($query); echo "
Zugriff verweigert!
"; } } mysql_close ($dz); ?>

Der Zugriff auf die Datenbank über mysql -u benutzer usw... funktioniert, aber eben leider nicht über die Webseite.
Die Seite wird aufgerufen aber der Zugriff wird verweigert.
Es gibt auch unter /var/log keine weiteren Fehlermeldungen.

Arbeite mit SUSE 10.3, mysql 5.0.45, php 5.2.6, apache 2.2.4

Ich habe probehalber mal XAMPP aufgespielt, dann funktioniert alles.
Wollte aber gerne ohne XAMPP auskommen.

Wäre dankbar für eine Hilfestellung.

Viele Grüße
 

Dr. Glastonbury

Advanced Hacker
Moin,
kurz vorweg, es wäre übersichtlicher, wenn du für Programmcode die
Code:
[code]some code
[/code]-Tags verwenden würdest.

Ansonsten hast du vermutlich vergessen, das Paket php5-mysql zu installieren, bzw. wenn es installiert ist sollte eine Datei /etc/php5/conf.d/mysql.ini mit dem folgenden Inhalt existieren:
Code:
extention=mysql.so
Normal sollte diese Datei aber beim Installieren des php5-mysql-Pakets angelegt werden. Ein Neustart des Apachen ist je nachdem auch ratsam ;)
 
OP
N

Nobodyline

Newbie
Danke erstmal für die Antwort

Das Paket ist installiert und in der Datei steht

Code:
extension=mysql.so

Installierte Pakete
libmysqlclient15, mysql, mysql-client, mysql-tools, perl-dpd-mysql, php5-mysql, phpmyadmin,
php5-json, php5-mbstring, php5-mcrypt, php5-pdo, php5-sqlite, php5-tokenizer, php5-xmlreader, php5-xmlwriter, php5-zlib
apache2-mod-php5, apache2-prefork, apache2-utils, apache2-worker
 

panamajo

Guru
Wird die MySQL Extension tatsächlich geladen (überprüfen mit der Ausgabe von phpinfo())?
Kann man mit den verwendeten MySQL Benutzerdaten überhaupt eine Verbindung aufbauen (in der Shell mit mysql testen)?
 

homer65

Hacker
Wo ist denn überhaupt in dem Quellcode das mysql_connect versteckt, man sieht es gar nicht? Und wo ist denn die Fehlermeldung, die da kommen soll? Der Quellcode wird ja wohl nicht die Fehlermeldung sein.
Versuch doch mal folgenden PHP Code:
Code:
 $db = mysql_connect("localhost","root","pw");
 if (!$db) 
 {
  die('Verbindung fehlgeschlagen: ' . mysql_error());
 }
 
OP
N

Nobodyline

Newbie
über mysql funktioniert die Anmeldung an der Datenbank, wie oben schon erwähnt.
In der PHP info sieht es eigentlich auch gut aus.

Hier der Auszug:

Code:
Active Persistent Links 	0
Active Links 	0
Client API version 	5.0.45
MYSQL_MODULE_TYPE 	external
MYSQL_SOCKET 	/var/lib/mysql/mysql.sock
MYSQL_INCLUDE 	-I/usr/include/mysql
MYSQL_LIBS 	-L/usr/lib64 -lmysqlclient

Directive	Local Value	Master Value
mysql.allow_persistent	On	On
mysql.connect_timeout	60	60
mysql.default_host	localhost	localhost
mysql.default_password	test	test
mysql.default_port	3306	3306
mysql.default_socket	no value	no value
mysql.default_user	test	test
mysql.max_links	Unlimited	Unlimited
mysql.max_persistent	Unlimited	Unlimited
mysql.trace_mode	On	On
 
OP
N

Nobodyline

Newbie
Hier noch die inc Datei

Code:
<?
$host="localhost";
$user="test";
$pass="test";
$database="Datenbank";
$dz=mysql_connect($host,$user,$pass);
mysql_select_db($database,$dz);
?>

Die Fehlermeldung ist das was ich auf der html Seite bekomme.
Was mir aufgefallen ist, das es ganz egal ist was ich in die inc Datei schreibe, es ist immer das gleiche Ergebnis.
Aber wie schon gesagt mit XAMPP funktioniert alles.
Ich denke mir das irgendetwas fehlt oder eine Einstellung falsch ist aber welche nur :hilfe:
 

moenk

Administrator
Teammitglied
Das Problem hatte ich auch mal. Hab mir dann den Connect wo anders rauskopiert und mit den gleichen Zugangdaten klappte dann alles.
Probier doch mal das hier:
Code:
<?php
//
// konfigurationsdaten für die datenbank
// aufbau der verbindung zur datenbank
// muss einmal in jede datei eingebunden werden
//
// -moenk/5011373
//
$dbhost = 'localhost';
$dbname = 'WE';
$dbuser = 'root';
$dbpasswd = 'root';
$sitetitle = 'moenk';

$dbconnection = @mysql_connect($dbhost,$dbuser,$dbpasswd);
if ($dbconnection) 
    $db = mysql_select_db($dbname);
    if (!$dbconnection || !$db) { 
	echo ("<p class=\"error\">Database connection fehlerhaft: ".mysql_error()."</p>\n");
    }
?>
Da kommt dann auch eine Fehlermeldung im Fehlerfall, die zeig hier dann mal wieder vor.
 
OP
N

Nobodyline

Newbie
Danke für eure Hilfe!!!
Bin inzwischen ein gutes Stück weiter gekommen.
Habe eine neue test Datenbank geöffnet und da hat es dann funktioniert.
Es waren die Einstellungen in der php.ini
 
Oben