DS 스터디 노트 -SQL 실행 오류 해결

Syl·2024년 4월 30일

DS Journey

목록 보기
35/38

8주차
Tue. 29. 4.

cmd에서 mysql이 실행이 안 되는 오류가 있었다.

물론 mysql 클라이언트에서는 이미 mysql에 접속된 상태에서 시작하기 때문에 root 계정으로 들어가지 않아도 패스워드만 입력하면 바로 실행이 됐다.

문제는 명령 프롬프트 창이나 다른 곳에서 mysql을 실행시키고 싶었다. 하지만 명령 프롬프트 창을 열고 mysql -u root -p를 입력하니, 아래처럼 나오면서 실행이 되지 않는 오류가 발생했다.

C:\Users\dlthd>mysql -u root -p
'mysql' is not recognized as an internal or external command,
operable program or batch file.

이를 해결하기 위해
1. MySQL 사용자의 인증 방법을 변경해봤다.
하지만 해결되지 않았다.

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

이런 코드로 root 권한을 갖지 않는 다른 사용자를 만들어 본 건데, 당연히 이미 mysql 실행되고 있는 상황에서 큰 의미는 없었다.

결정적으로
2. 시스템의 환경 변수를 수정하는 방법으로 해결했다.

사실 이 방법으로 처음에는 해결되지 않는 듯 보이기는 했는데, 내가 해결한 방법은 다음과 같은 순서로 진행됐다.

  • 먼저 MySQL 클라이언트 실행 파일의 위치를 확인했다. (이 과정에서 MYSQL 디렉토리가 각각 ProgramFile과 ProgramData 두 위치에 있다는 것을 알게 됐다.)
  • 클라이언트 파일은 C:\ProgramData\Microsoft\Windows...\MySQL Server 8.0라는 경로에 있었는데, 시스템(제어판) - 시스템 환경 변수 편집 - Path - 편집에서 위의 경로를 넣었다.
  • 다시 실행해보니 cmd에서 여전히 같은 오류가 발생했고, 파일 이름에 있는 띄어쓰기가 문제인가 싶어서 ""를 넣어봤지만 그대로였다.
  • 노트북 전원을 껐다 켰지만 그대로였다.
  • 마지막으로 클라이언트가 binary 파일 안에 들어 있지 않았다는 점이 신경 쓰여서 이번엔 다시 bin 폴더가 있던 위치로 Path를 수정했다.
  • 그리고 나서 명령 프롬프트를 다시 실행시켜 보니 해결이 되었다!: 처음 지정될 때 파일 이름에 오류가 있었던 것으로 생각된다. 참고로 처음에는 'C:..\bin\'으로 되어 있었다. 즉, 왜인지 모르겠지만 bin 뒤에 '\'(원화 표시)가 붙어 있었는데, 다시 파일 위치를 복사 붙여넣기 하는 과정에서 자연스럽게 맨 뒤의 원화 표시가 사라지면서 바르게 경로가 설정된 듯하다.
  • 어쨌든 이제 mysql을 다른 터미널에서 실행시킬 수 있게 되었다!

해결 끝.

0개의 댓글