Use backticks para o nome do objeto; Não barras invertidas para escapar de caracteres únicos:
mysql> drop database '#really-bad+name';
Query OK, 0 rows affected (0.00 sec)
Como eliminar o banco de dados com metacaracteres no nome. O nome do banco de dados é #mysql50#lost+found
.
Estou conectando no mysql como usuário root. Eu tentei colocar barras invertidas como em um comando shell:
MariaDB [(none)]> DROP DATABASE '\#mysql50\#lost\+found' ;
ERROR 1064 (42000): You have an error in your SQL syntax;
Não funciona
Para o problema específico na questão, o banco de dados #mysql50#lost+found
é um artefato do sistema de arquivos montado em (provavelmente) /var/lib/mysql
, que tem um diretório especial lost+found
reservado para recuperação ao usar fsck
.
Portanto, este diretório deve ser deixado sozinho dizendo ao MariaDB para ignorá-lo. Em /etc/my.cnf
ou outro local semelhante, adicione:
ignore-db-dir=lost+found
e reinicie o servidor do banco de dados.