ฐานข้อมูล MySQL ไม่มีอยู่หรือไม่มี


1

ฉันเพิ่งพบสถานการณ์ที่แปลกมากในเครื่องพัฒนาของฉัน: ฐานข้อมูลอยู่ใน 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 และติดตั้งแพ็คเกจ Xampp จาก AUR แล้ว การติดตั้ง MySQL มาจากที่นั่น ฉันอาจทำบางสิ่งบางอย่างยุ่งในขณะที่ฉันกำลังตั้งค่า vhost ใหม่หรือไม่ แต่ในกรณีใด ๆ ที่ฉันสูญเสียโดยสิ้นเชิงว่าเกิดอะไรขึ้น

มีใครบ้างไหมที่ให้แสงนี้?

UPDATE: ฉันพยายามรีสตาร์ท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

Dunno ถ้ามันจะช่วยคุณได้ แต่ phpMyAdmin เวอร์ชันใหม่ด้วยเหตุผลที่คลุมเครือไม่อนุญาตให้คุณใช้คำสั่ง "ปล่อยฐานข้อมูล" และคุณต้องลบฐานข้อมูลผ่านปุ่ม GUI แทน บางทีมันอาจส่งผลกระทบต่ออินเตอร์เฟสบรรทัดคำสั่งของคุณอย่างใด คุณลองปุ่มแล้วหรือยัง --- และถ้าเซิร์ฟเวอร์ MySQL ของคุณถูกบั๊กผมแนะนำให้คุณติดตั้ง Xampp ใหม่อีกครั้ง ครั้งล่าสุดที่ WAMPserver แสดงตลกกับฉันฉันไม่ได้มองหาปัญหานานเกินไปเพราะมันน่าหงุดหงิดและซับซ้อนและเพิ่งติดตั้งใหม่ มายากล; มันทำงานได้ดี xD
Ariane

ไม่ฉันมักจะใช้ cli (ผ่านสคริปต์จริง ๆ ) เพื่อจัดการ db PHPMyAdmin เป็นเพียงวิธีที่ดีในการเรียกดู ฉันไม่ต้องการติดตั้งใหม่เช่นกัน: ฉันจะสูญเสียการตั้งค่าทั้งหมดเพื่อโอกาสในการแก้ปัญหา ... ฉันอยากหาสาเหตุหรือวิธีแก้ปัญหา
Félix Saparelli

คำตอบ:


4

หลังจากอ่านไฟล์บันทึกฉันรู้ว่าเซิร์ฟเวอร์ mysqld ไม่ได้ทำงานในฐานะผู้ใช้ที่เหมาะสม เดิมได้รับการกำหนดค่าให้เรียกใช้ในฐานะผู้ใช้nobodyแต่เมื่อเร็ว ๆ นี้ฉันได้เปลี่ยนผู้ใช้ Apache เป็นsomeuserแล้วจึงchownเปลี่ยน/opt/lamppไดเรกทอรีทั้งหมดเป็นผู้ใช้ my.cnfแต่ผมไม่ได้มีการเปลี่ยนแปลงรายการใน approprite ที่แก้ไขมัน

สำหรับทุกคนที่พบกับสถานการณ์แปลก ๆ ในอนาคต: มีการบันทึก/opt/lampp/var/mysql/your-hostname.errไว้ การค้นหาสิ่งเหล่านี้เป็นส่วนที่ยากที่สุด! :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.