2013-09-11 4 views
3

Недавно я импортировал базу данных со старого хоста. К сожалению, он содержит некоторые базы данных с именами в следующем формате:Имя базы данных MySQL с незаконными символами

#mysql50#databasename.bak 

Я не хочу, чтобы удалить их, поскольку они больше не нужно, но вызов базы данных падения дает мне следующую ошибку:

DROP DATABASE `#mysql50#databasename.bak` 
Incorrect database name 

У меня есть посмотрел в information_schema, и имя совпадает с именем #s. Одна интересная вещь, которую я заметил, это каталоги в/var/lib/mysql, которые не содержат #s и находятся в формате databasename.bak.

ответ

0

Попробуйте

DROP DATABASE `\#mysql50\#databasename.bak` 

или

DROP DATABASE `##mysql50##databasename.bak` 
+2

Он также должен избегать DOT – CloudyMarble

+0

К сожалению, я получаю «базу данных не существует», когда я пытаюсь обеими этими командами :( – dmanners

1

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

Также у вас есть root-доступ к компьютеру, который получил db? Вы должны иметь возможность войти в каталог данных mysql и удалить базу данных на уровне файла. Мой каталог данных -/var/lib/mysql. Внутри этого каталога вы увидите все свои базы данных (в виде каталогов), просто удалите каталог с именем после базы данных.

+0

спасибо, что я сделал это вторым способом, удалив файлы под данными для этих базы данных, поскольку phpmyadmin все еще имел проблемы с именами. – dmanners

Смежные вопросы