MySQL 資料庫既不存在也不存在

MySQL 資料庫既不存在也不存在

我剛剛在我的開發機器上遇到了一個非常奇怪的情況:資料庫列在 PHPMyAdmin 中,但沒有任何表格。出於好奇,我在命令列上打開了一個mysql客戶端,你瞧:

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

我正在運行 Arch Linux 並已從 AUR 安裝了 Xampp 軟體包; MySQL 安裝來自那裡。在設定新的虛擬主機時,我可能搞砸了一些事情,也可能沒有,但無論如何,我對發生的事情完全不知所措。

有人能解釋一下嗎?

更新:我嘗試重新啟動mysql伺服器,但現在它拒絕啟動備份。我會看一下日誌。這是相關部分:

/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

答案1

閱讀日誌檔案後,我意識到 mysqld 伺服器無法以正確的使用者身分執行。它最初配置為以使用者身份運行nobody,但我最近將 Apache 用戶更改為someuser,然後chown將整個/opt/lampp目錄更改為該用戶。但是我沒有更改 中的適當條目my.cnf。這解決了它。

對於將來遇到這種奇怪情況的任何人:日誌位於/opt/lampp/var/mysql/your-hostname.err.找到這些其實是最困難的部分! :)

相關內容