Como eliminar um banco de dados com metacaracteres no nome

1

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

    
por dubis 25.07.2018 / 22:00

2 respostas

3

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)
    
por 25.07.2018 / 22:07
0

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.

refs: MySQL / MariaDB

    
por 25.07.2018 / 23:57

Tags