[Linux] mysql 삭제 후 'command not found' 가 나오지 않는 문제 해결

jin·2023년 5월 11일

mysql을 삭제하는 shell script를 작성하면서,
깨끗하게 삭제가 되었는지 확인하며 다음과 같은 문제 상황을 마주했다.

  1. mysql uninstall shell script 실행
  2. 터미널에서 'mysql' 입력
$ mysql
-bash: /usr/bin/mysql: No such file or directory

제대로 삭제 되었다면, 2번 과정에서 다음과 같이 출력되는 것을 기대하였다.

$ mysql
-bash: mysql: command not found

문제 해결
Linux는, 현재 쉘 세션에서 사용 가능한 실행 파일들의 경로를 해시 테이블에 저장한다. 즉, 해시 테이블을 통해 실행 파일들의 경로와 파일 이름을 매핑하여 실행한다.

나의 경우, mysql은 제대로 삭제 되었지만 OS단에서 mysql에 대한 실행 경로를 해시테이블에 저장 해 둔 상태이기 때문에 발생한 문제였다.

hash -r 명령어를 실행하면 해시 테이블에 저장된 경로 정보를 지우고, 다시 실행 파일을 찾을 때는 새로운 경로 정보를 기반으로 해시 테이블을 구성한다.

해시 테이블을 현재의 상태를 반영하여 올바르게 다시 구성하기 때문에, mysql이 삭제된 현황을 반영 할 수 있었다.

0개의 댓글