Назад | Перейти на главную страницу

Mysql - удалить базу данных с # в имени

Как я могу удалить базу данных с # в имени? Вот так: # mysql50 # mysql.backup

Я не знаю, кто это мог создать, но это случилось. Когда я пробую DROP DATABASE name, я получаю ошибку:

ОШИБКА 1102 (42000): неправильное имя базы данных.

Спасибо за помощь.

Возможно, у вас есть скрытая папка в каталоге данных. Пожалуйста, выполните ls -larth и удалите каталог mysql.backup.

По умолчанию любые папки внутри каталогов данных mysql будут считываться как база данных и отображаться в «показать базы данных».

Вы всегда должны избегать имен баз данных, используя обратные кавычки, по крайней мере, в случае сомнений.

DROP DATABASE `#mysql50#mysql.backup`

Если механизм хранения базы данных - MYISAM, просто остановите сервер базы данных и удалите каталог, названный в честь вашей базы данных, в вашем каталоге данных. (дефолт var/lib/mysql)

Любой каталог в каталоге данных MySQL рассматривается MySQL как база данных. Скорее всего, у вас есть выделенная точка монтирования для / var / lib / mysql с файловой системой ext {4,3,2} и присутствующим каталогом "lost + found" по умолчанию (каталог lost + found используется инструментами проверки файловой системы (fsck)). Вы можете сказать MySQL рассматривать этот каталог как каталог, а не базу данных с помощью ignore_db_dir вариант в my.cnf:

ignore_db_dir=lost+found

В вашем конкретном случае (# mysql50 # mysql.backup) это будет:

ignore_db_dir=mysql.backup

Что вы можете попробовать, так это изменить имя базы данных, изменив имя ее каталога данных, а затем отбросить базу данных или просто удалить каталог, если хотите, и база данных также будет удалена.

Может быть, вы были в другом режиме SQL, когда создавалась эта таблица? Подобные имена баз данных можно было бы использовать на разных серверах SQL. Вы можете попробовать переключить MySQL в другой режим SQL, как описано Вот а затем попробуйте уронить стол.

Если это не сработает, я бы также рекомендовал удалить файлы базы данных.

У меня была такая же проблема. Я обнаружил следующие проблемы. В моей папке / var / lib / mysql / были такие элементы:

._cache_block.frm ._cache_block.ibd ._ctools_css_cache.frm ._ctools_css_cache.ibd ._field_revision_field_slide_show_image.frm ._field_revision_field_slide_show_image.ibd ._field_revision_field_tags.frm ._field_revision_field_tags.ibd ._taxonomy_vocabulary.frm ._taxonomy_vocabulary.ibd

Я их удалил. Затем я смог правильно запустить свои команды MySQL (в данном случае mysqldump).

Для CentOS 7 смените каталог на /var/lib/mysql

cd /var/lib/mysql

sudo rm -R .mysql.backup