MySQL-Datenbank existiert nicht und funktioniert auch nicht

MySQL-Datenbank existiert nicht und funktioniert auch nicht

Ich habe gerade eine sehr seltsame Situation auf meinem Entwicklungsrechner festgestellt: Die Datenbank ist in PHPMyAdmin aufgeführt, aber ohne Tabellen. Neugierig geworden, öffnete ich einen mysqlClient in der Befehlszeile und siehe da:

mysql> CREATE DATABASE somedb;
ERROR 1007 (HY000): Can't create database 'somedb'; database exists
mysql> DROP DATABASE somedb;
ERROR 1008 (HY000): Can't drop database 'somedb'; database doesn't exist

Ich verwende Arch Linux und habe das XAMPP-Paket aus dem AUR installiert; die MySQL-Installation kommt von dort. Vielleicht habe ich beim Einrichten eines neuen virtuellen Hosts etwas vermasselt, oder auch nicht, aber auf jeden Fall weiß ich überhaupt nicht, was los ist.

Kann jemand Licht ins Dunkel bringen?

UPDATE: Ich habe versucht, den mysqlServer neu zu starten, aber jetzt weigert er sich, wieder zu starten. Ich werde mir die Protokolle ansehen. Hier ist der relevante Teil:

/opt/lampp/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
130109 15:16:13 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
130109 15:16:13 InnoDB: The InnoDB memory heap is disabled
130109 15:16:13 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
130109 15:16:13 InnoDB: Compressed tables use zlib 1.2.3
130109 15:16:13 InnoDB: Initializing buffer pool, size = 16.0M
130109 15:16:13 InnoDB: Completed initialization of buffer pool
130109 15:16:13  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name /opt/lampp/var/mysql/ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
130109 15:16:13 mysqld_safe mysqld from pid file /opt/lampp/var/mysql/hostname.pid ended

Antwort1

Nachdem ich die Protokolldatei gelesen hatte, wurde mir klar, dass der mysqld-Server nicht unter dem richtigen Benutzer ausgeführt wurde. Ursprünglich war er so konfiguriert, dass er als Benutzer ausgeführt wurde, nobodyaber ich hatte vor Kurzem den Apache-Benutzer in geändert someuserund dann chowndas gesamte /opt/lamppVerzeichnis auf den Benutzer umgestellt. Allerdings hatte ich den entsprechenden Eintrag in nicht geändert my.cnf. Das hat das Problem behoben.

Für alle, die in Zukunft in diese seltsame Situation geraten: Die Protokolle sind da /opt/lampp/var/mysql/your-hostname.err. Sie zu finden war eigentlich der schwierigste Teil! :)

verwandte Informationen