5 Stimmen

MySQL kann die Datenbank nicht sehen

GRANT SELECT ON source_starcraft.udb_ability TO `wade`@`localhost'

Wenn ich mich mit wade über PHPMyAdmin kann ich die Datenbank nicht sehen source_starcraft . Ich habe nur diese Abfrage ausgeführt und den Benutzer vor dieser Abfrage erstellt.

11voto

bigstones Punkte 14857

Hier etwas, das mir sehr geholfen hat. Eigentlich habe ich mit MySQL Workbench gearbeitet.

http://bobfield.blogspot.it/2006/10/i-cant-see-my-databases.html

Kurz gesagt: Wenn MySQL ein <anonymous>-Konto hat und Sie sich nicht mit Ihrem Benutzer anmelden, werden Sie als anonymer Benutzer angemeldet, ohne dass Sie es merken. Um dies herauszufinden, können Sie Folgendes tun:

SELECT user(), current_user();

Hier ist der Grund dafür:

Ein wichtiger Punkt ist, dass SELECT USER(); s den aktuellen Benutzernamen und Host. Ein weiterer Befehl, SELECT CURRENT_USER(); zeigt, was Sie sind authentifiziert als.

In meinem Fall ist das der Fall, user() war mylogin@localhost , current_user() war @localhost (der anonyme Benutzer).

10voto

TwoD Punkte 255

Wenn der Benutzer, mit dem Sie sich in phpMyAdmin eingeloggt haben, die richtigen Rechte hat, um die Datenbank zu sehen, Sie sie aber trotzdem nicht sehen können, kann es sein, dass phpMyAdmin selbst so konfiguriert wurde, dass sie nicht angezeigt wird. Dies lässt sich am einfachsten überprüfen, indem Sie eine show databases; SQL-Abfrage aus phpMyAdmin heraus. Wenn die gesuchte Datenbank angezeigt wird, ist der Benutzer zumindest berechtigt, sie einzusehen.

Es gibt mehrere Konfigurationsdirektiven, die steuern können, welche Datenbanken in den Listen von phpMyAdmin sichtbar sind. Wenn Sie ein automatisches Installationsprogramm oder ein Skript benutzt haben, um phpMyAdmin zu einem Benutzerkonto hinzuzufügen, kann es sein, dass dieses auch eine der Direktiven only_db oder hide_db gesetzt hat. Diese Einstellungen werden auch in der offiziellen phpMyAdmin-Dokumentation beschrieben, die mit Ihrer Installation mitgeliefert worden sein sollte, sowie auf der Seite wiki .

Wenn Ihr Benutzer die Möglichkeit hat, die Einstellungen zu ändern, können Sie dies für die aktuelle Sitzung in phpMyAdmin unter "Einstellungen" und dem Reiter "Funktionen" tun. Um diese Einstellungen dauerhaft zu ändern, müssen Sie Folgendes bearbeiten config.inc.php . Der Speicherort hängt davon ab, wo phpMyAdmin auf Ihrem System installiert ist.

1voto

Riedsio Punkte 9460

Es scheint, als gäbe es einen Konflikt/Verwirrung in Bezug auf den Host, für den die Genehmigung erteilt wurde, und den/die Hosts, die verwendet werden.

Nach FLUSH PRIVILEGES Um diese Möglichkeit auszuschließen, würde ich sehen, als welcher Benutzer ich identifiziert wurde, sobald ich angemeldet war:

SELECT user();

Beachten Sie, dass MySQL ein Login immer mit dem spezifischsten Host verknüpft. Siehe doc . Vergleichen Sie dann die Angaben mit denen in der Datenbank für Berechtigungen.

SELECT * FROM mysql.user WHERE user='wade';

SELECT * FROM mysql.db WHERE user='wade';

Um die Situation zu lösen, müssen Sie entweder REVOKE o DELETE + FLUSH PRIVILEGES den störenden Konflikt (wobei man darauf achten sollte, sich nicht in eine Ecke zu drängen), oder GRANT mehr Privilegien als die, als die Ihr Benutzer identifiziert ist.

0voto

Luis H Cabrejo Punkte 184

Ich hatte gestern das gleiche Problem. Ich tauschte meine Datendateien HD auf einen anderen MySQL-Server (gleiche Version von allem, Replik brandneue Installation gleiche Passwörter als vorbeugende Wartung). Hatte beide Root-Zugang, aber ich denke, sie sind verschiedene Maschinen und Hashes für die Passwörter beim Start von MySQL erstellt. Wenn ich für Dateien aufgelistet, sind alle intakt in beiden Servern, aber phpmyadmin konnte nicht sehen, Datenbanken (nur information_schema), auch nicht verfügbar mit MySQL durch Shell, aber Dateien sind am richtigen Ort.

Bei der Überprüfung des Besitzes von Dateien, die nicht Root gehören, war der Besitzer niemand also habe ich die Datenbankdateien am MySQL-Standarddatenspeicherort übernommen, indem ich chown root:root *

Wenn Sie also der Meinung sind, dass Sie nur die Daten durch den Austausch von Festplatten ersetzen und an beiden Orten Root-Zugriff haben, werden Sie glücklich sein. Aber nicht so schnell, Sie müssen vielleicht noch die Berechtigung und den Besitz dieser Dateien überprüfen, um sie in PHPMYADMIN auflisten zu können

Nach dieser Prozedur funktionierte nach dem Neustart alles einwandfrei.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X