MySQL Datenbank verweigert den Zugriff, wie löse ich das Problem?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Die erste Fehlermeldung besagt, dass du nicht mehr die mysql_* Funktionen benutzen sollst, da sie "deprecated" (= veraltet) sind. Noch funktionieren sie zwar, aber ab PHP 7 wurden sie ganz entfernt. Als Alternativen kannst du mysqli oder noch besser gleich PDO verwenden (http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers).

Der Fehler, der dafür sorgt, dass dein Script nicht funktioniert, ist aber der zweite, "Access denied for user" heißt, dass etwas mit den Zugangsdaten nicht stimmt, also du hast den falschen Usernamen oder das falsche Passwort benutzt (bzw dich bei einem davon vertippt halt). Bist du dir sicher, dass man dieses ganze "niXXXXXXX_XsqlX'@'vwebXX.nitrado.net" als MySQL Benutzername braucht? Sieht mir ziemlich ungewöhnlich aus, meist ist es ein einfacher Username (nur das vor dem @ vielleicht?), aber kA wie das bei Nitrado gemacht wird.



Das mit dem @ ist schon korrekt. In der Fehlermeldung wird 'benutzername'@'host' angegeben. In diesem Fall ist niXXXXXXX_XsqlX der Benutzername und vwebXX.nitrado.net der Host.

2
@Balco

Ah, jo, stimmt ja... 

Fehler bleibt aber ansonsten ja der gleiche,  Benutzername oder Passwort ist falsch.

2
@mastema666

Der Benutzername kann nicht falsch sein, den habe ich aus dem Interface kopiert.

Beim Passwort habe ich das der Datenbank angegeben, sollte also auch stimmen. Oder muss das PW vom Account rein?

Danke euch beiden!!

0
@Savix

Das hängt vom Anbieter ab, normalerweise gibt es entweder ein PW für alles oder eben eins für FTP und eins für die DB (was imho auch sinnvoller ist, aber das andere hab ich auch schon erlebt), wenn da eins speziell für die DB angegeben ist sollte das aber auch das richtige sein.

Kommst du denn via phpMyAdmin mit diesen Benutzerdaten rein? Falls du mit den Daten auch so nicht in die DB kommst wäre es wohl am sinnvollsten Mal beim Nitrado Support nachzufragen.

Möglicherweise ist Benutzername oder PW sogar falsch gerade weil du es kopiert hast, hatte ich auch irgendwo mal, da wurde beim kopieren immer irgendein unsichtbares Sonderzeichen mitgenommen, manuell eingetippt wars dann kein Problem.

Grundsätzlich ist die Fehlermeldung allerdings eindeutig, es stimmt halt Username oder PW nicht (oder beides), wobei es natürlich auch ein Fehler seitens des Hosters beim Anlegen der DB oder des Users sein könnte, auch wenn das normalerweise automatisch gehen sollte (und Nitrado ja nun auch nicht gerade ein ganz kleiner Hoster ist, aber wer weiß).

2
@mastema666

Jede Datenbank ist mit einem eigenen Passwort gesichert, genau.

Kommst du denn via phpMyAdmin mit diesen Benutzerdaten rein?

Ja, das klappt einwandfrei. Ich habe es nun auch nochmal geändert und es ist 100%ig richtig.

BTW: Ich habe ein komlett neues Script geschrieben, angepasst an MySQLi und erhalte immernoch diese Fehlermeldung, allerdings gleich auf der Login-Seite (habe die connect.php outgesourct und in die Haupt-HTML-Datei eingebunden).

Warning: mysqli_connect(): (HY000/1045): Access denied for user 'niXXXXXXX_1sql5'@'vweb15.nitrado.net' (using password: YES) in /var/customers/webs/niXXXXXXX_1/login/connection.php on line 6

Ich bin überfragt, könnt ihr helfen?

0
@Savix

Hmm, kannst du diese "connection.php" mal posten?
Wenn du via phpMyAdmin ja rein kommst müssten die Logindaten ja stimmen, bleibt also eigtl nur ein Fehler im Code, der die Verbindung herstellt.

Natürlich ohne die echten Logindaten ;) (und möglichst nicht hier direkt sondern auf z.B. http://pastebin.com damit mans auch lesen kann).

1
@Savix
define('DB_SERVER', 'vweb15.nitrado.net');

Versuch es dort mal statt des "vweb15.nitrado.net" mit "localhost" oder ggf auch "127.0.0.1", sonst fällt mir da grad nichts auf.

1
@mastema666

Wenn ich "localhost" eintrage, erscheint:

Warning: mysqli_connect(): (HY000/2002): No such file or directory in /var/customers/webs/niXXXXXXX_1/login/connection.php on line 6

Und wenn ich die IP 127.0.0.1 eintrage:

Warning: mysqli_connect(): (HY000/1045): Access denied for user 'niXXXXXXX_1sql5'@'localhost' (using password: YES) in /var/customers/webs/ni1040299_1/login/connection.php on line 6

Letztere Variante scheint also soweit zu funktionieren, jedenfalls was die Verbindung zum Provider angeht, da der Zugriff ja vom Server abgelehnt wird. Daraus schließe ich, dass beim Provider etwas nicht stimmt. Was meinst du?

0
@Savix

Jo, wobei es mir irgendwie merkwürdig vorkommt, dass da was von "No such file or directory" kommt, da sollte ja gar keine Datei / Verzeichnis erwartet werden. Aber wenn du ja mit den gleichen Daten via phpMyAdmin rein kommst, kann eigtl nur was mit dem Server nicht stimmen. 

Bei den Zugangsdaten vom Hoster ist aber auch nicht z.B. ein Port für MySQL angegeben? Theoretisch könnten ja mehrere mysql-Server mit unterschiedlichen Ports dort laufen, auch wenn das schon eine ziemlich ungewöhnliche Konfiguration wäre. 

1
@mastema666

Hehe, ich Depp habe als Datenbanknamen versehentlich die Datenbankbeschreibung eingetragen... ^^

Das ist bei Froxlor (Webpanel für den Nitrado-Webspace) leider etwas verwirrend, da komme ich nicht das erste Mal durcheinander.

Falsch

define('DB_DATABASE', 'database');

Richtig:

define('DB_DATABASE', 'niXXXXXXX_1sql5');

Danke dir nochmals für deine erneute Hilfe! :)

0
@Savix

Ah, ok :) Da wär ich nu auch nicht drauf gekommen, ich dachte da steht nur "database" weil du den echten Namen nicht offen posten wolltest^^

1
@mastema666

Ja, im Beispiel war das hier auch so gedacht, zur Anonymisierung :)

Die echte Beschreibung ist aber auch nur ein Wort lang, von daher ist die Fehlerquelle (von der Logik her) die gleiche. :D

0

Bist du dir sicher, dass man dieses ganze "niXXXXXXX_XsqlX'@'vwebXX.nitrado.net" als MySQL Benutzername braucht?

Laut dem Nitrado-Forum sollen diese Angaben jedenfalls stimmen. 

niXXXXXXX_XsqlX ist der Name der Datenbank und vwebXX.nitrado.net ein Nitrado-Server, auf dem die Datenbank abgelegt ist.

0

Wie schon die vorherigen Fragen das geschrieben haben solltest du MySQLi und nicht mehr MySQL verwenden. Das Hauptproblem bei dir ist jedoch, dass die Zugangsdaten nicht korrekt sind. Überprüfe deine Angaben, die du im Code hinterlegt hast, ob diese wirklich mit den Benutzerdaten übereinstimmen.

Du sollst nicht mit mysql sondern mit mysqli verbinden...Google nach mysqli und bearbeite den Code wie vorgegeben

Hi,

danke dir für das Stichwort. Aber wieso klappt das denn mit dem gewöhnlichen MySQL nicht? Scheint doch eigentlich der Standard zu sein.

Grüße, Savix

0
@Savix

MySQL als Datenbanksystem ist weit verbreitet, ja, nur von "Standard" noch weit entfernt. Die mysql-Funktionen in PHP für den Zugriff auf MySQL-Datenbanken sind keineswegs Standard, sie sind deprecated und mit PHP 7 bereits abgeschafft. Daher solltest Du mysqli oder auch pdo verwenden.

1

Es steht doch im fehlercode? Es ist veraltet und unsicher deswegen moechte PHP nur noch per mysqli auf die mysql datenbank zugreifen

1

Der angegebene Host ist nicht verfügbar?

hallo. ich habe völlige fehlermeldung:

Warning: mysql_connect(): php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt. in C:\xampp\htdocs\kannicheuchnichtsagen.php on line 7

hier ist line 7:

$verbindung = mysql_connect("localhost, vanille")

Der Sinn dieses Programmes ist, die eingebenen Daten direkt in eine Datenbank zu speichern welche ich unter dem Namen ''vanille'' abgespeichert habe. Ich benutze übrigens den Localhost.

...zur Frage

Habe außversehen die phpMyandmin datenbank gelöscht wo bekomme ich eine neue her?

hallo, ich wollte in meiner Datenbank mal wieder ein wenig aufräumen allerdings habe ich dabei die phpMyAdmin datenbank gelöscht, nun kann ich nichts mehr bearbeiten oder Lesen. Auch meine Minecraft plugins haben dadurch keinen zugriff mehr. Wie bekomme ich die wieder, Gibt es eine Art papierkorb, Kann mir vl jemand die Datenbank schicken oder kann ich die irgendwo downloaden?

MFG Ich

...zur Frage

phpmyadmin error?

Wenn ich phpmyadmin starten möchte (sprich im browser "ip/phpmyadmin" aufrufe erhalte ich folgende fehlermeldung: "Parse error: syntax error, unexpected '@' in /var/www/phpmyadmin/libraries/common.inc.php on line 467". gettext ist auch installiert. ich weiß echt nicht weiter. Hoffe jemand kann mir Helfen. Danke schonmal!

...zur Frage

Wie kann ich dieses Problem mit MySql beheben?

Ich hab diese Meldung auf meiner Internetseite:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/u774875040/public_html/poll/include/class_mysql.php on line 32

Es hat irgendwas mit MySql verbindung zu tun.

...zur Frage

PHP Verbindung mit der Datenbank?

Fehlermeldung

Fatal error: Call to undefined function mysql_connect() in C:\xampp\htdocs\Spiele.php on line 11?

...zur Frage

Was bedeutet dieser PHP - MySQL Fehler?

Ich möchte mit meiner lokalen mySQL Datenbank eine Verbindung herstellen. Ich habe Apache und MySQL via XAMPP laufen. Doch wenn ich eine MySQL Verbindung herstellen möchte, erscheint folgende Meldung:

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\Users\Tom\Documents\XAMPI\htdocs\chat.php:2 Stack trace: #0 {main} thrown in C:\Users\Tom\Documents\XAMPI\htdocs\chat.php on line 2

Meine Zeile 2 sieht folgendermaßen aus:

$dbconnect = mysql_connect('localhost','root','');

Verstehe nicht, was daran falsch sein soll.

Habe XAMPP kürzich erst installiert. Kann es sein, dass es mysql_connect nicht mehr gibt? Habe gehört, es soll aus PHP entfernt werden. Aber was soll da dann sonst hin?

...zur Frage

Was möchtest Du wissen?