이름에 메타 문자가 포함된 데이터베이스를 삭제하는 방법

이름에 메타 문자가 포함된 데이터베이스를 삭제하는 방법

이름에 메타 문자가 포함된 데이터베이스를 삭제하는 방법 데이터베이스 이름은 입니다 #mysql50#lost+found.

루트 사용자로 mysql에 연결하고 있습니다. 쉘 명령처럼 백슬래시를 추가해 보았습니다.

MariaDB [(none)]> DROP DATABASE '\#mysql50\#lost\+found' ;
ERROR 1064 (42000): You have an error in your SQL syntax;

이건 작동하지 않아

답변1

객체 이름에는 백틱을 사용하십시오. 개별 문자를 이스케이프하려면 백슬래시를 사용하지 마십시오.

mysql> drop database `#really-bad+name`;
Query OK, 0 rows affected (0.00 sec)

답변2

~을 위한특정 문제이 문제에서 데이터베이스는 사용 중인 복구용으로 예약된 특수 디렉토리가 있는 파일 시스템 #mysql50#lost+found에 마운트된 아티팩트입니다 ./var/lib/mysqllost+foundfsck

따라서 MariaDB에 디렉터리를 무시하도록 지시하여 디렉터리를 보존해야 합니다. /etc/my.cnf또는 기타 유사한 장소 에 다음을 추가하십시오.

ignore-db-dir=lost+found

그리고 데이터베이스 서버를 다시 시작하세요.

참고자료:MySQL/마리아 데이터베이스

관련 정보