MariaDB Ignoring query to other database 발생 이유
- Database
- 2023. 11. 1.
리눅스에서 MySQL 또는 MariaDB에 로그인했을 때 쿼리를 날리려고 하자 Ignoring query to other database라는 정체불명의 에러가 나타났습니다.
MariaDB [(none)]> show databases;
Ignoring query to other database
Ignoring query to other database
이 문제에 대해 구글링을 하면 아주 단순한 원인과 해법을 찾을 수 있습니다. 대부분 비슷한 내용인데, 마음에 들지는 않는 결론입니다.
로그인할 때 오타를 냈다는 건데요.
mysql -u root -p
이렇게 로그인 해야하는데
mysql -root -p
이렇게 u를 빼고 로그인했다는 겁니다.
확인해 보면 실제로 틀린 말은 아닙니다. mysql -root -p로 로그인을 하고 쿼리를 날리면 Ignoring query to other database 에러가 다시 발생하는 걸 볼 수 있었습니다.
그렇기 때문에 로그인할 때 mysql -u [계정명] -p 옵션을 올바르게 로그인해야 한다는 겁니다.
다시 말하지만, 틀린 말은 아닌데 여전히 의문이 남습니다. mysql -root -p로 어떻게 로그인이 되는 거죠? "오타를 내서 문제가 생긴 거다"라는 논리적이지 못한 결론이 마음에 들지 않습니다. 오타를 내서 로그인이 안 됐으면 모르겠는데, 로그인이 되잖아요. 그래서 좀 더 알아봤습니다.
mysql -root -p로 로그인이 가능한 이유
-root 라는 게 무슨 의미인데 로그인이 되는 걸까요. 결론부터 말씀드리면 이게 얼핏 root 라는 계정으로 무언가를 하려는 명령어처럼 보이지만 아닙니다. 사실은 -r -o -o -t 라는 개별 알파벳 옵션으로 mysql을 실행하는 명령어로 인식되는 거 같습니다.
확인하기 위해 아래의 방식으로 모두 로그인해봤습니다.
mysql -r -p
mysql -o -p
mysql -t -p
mysql -r -p과 mysql -t -p는 모두 로그인도 되고 데이터베이스 쿼리도 됩니다. 그러나 mysql -o -p는 로그인은 되지만 Ignoring query to other database 에러가 발생하는 걸 확인했습니다.
찾았습니다. Ignoring query to other database를 발생시키는 문제는 정확히 말하면 -root가 아니라 -o 였던 겁니다.
mysql의 옵션 중 아래의 내용을 발견했습니다. -o는 현재 선택된 데이터베이스 외의 다른 데이터베이스에 대한 질의를 무시하는 옵션입니다. 그래서 다른 데이터베이스에 대한 쿼리를 무시(Ignoring query to other database)하는 에러가 나왔던 겁니다.
이상 알아도 별 쓸모는 없는(?) mysql -root -p에 대한 설명이었습니다.
'Database' 카테고리의 다른 글
토드 오라클 연결 TNS / Direct 차이 (0) | 2023.11.06 |
---|---|
MYSQL EXPLAIN 사용법 (쿼리 성능 문제 확인) (0) | 2023.11.03 |
MYSQL 사용자(user) 호스트 / 권한 개념 정리 (0) | 2023.10.31 |
MYSQL 실행 중인 쿼리 중지 방법 (1) | 2023.10.26 |
MSSQL dbo란? 스키마의 개념 (2) | 2023.10.17 |