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 происходит оттуда. Возможно, я что-то напутал, когда настраивал нового виртуального хоста, или нет, но в любом случае я в полной растерянности относительно того, что происходит.

Может кто-нибудь пролить некоторый свет на это?

ОБНОВЛЕНИЕ: я попытался перезапустить сервер 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 ответ1

4

Прочитав лог-файл, я понял, что сервер mysqld не работает как правильный пользователь. Первоначально он был настроен для работы в качестве пользователя nobody , но я недавно изменил пользователь Apache на someuser , а затем chown «d весь каталог /opt/lampp пользователю. Однако я не изменил подходящую запись в my.cnf . Это исправило это.

Для тех, кто сталкивается с этой странной ситуацией в будущем: журналы находятся в /opt/lampp/var/mysql/your-hostname.err . Найти это было на самом деле самая сложная часть! :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .