관리 메뉴

나만을 위한 블로그

[PHP] MySQL과 하이디 SQL을 연동하면서 생긴 에러들 해결법 정리 본문

PHP

[PHP] MySQL과 하이디 SQL을 연동하면서 생긴 에러들 해결법 정리

참깨빵위에참깨빵 2019. 12. 28. 00:56
728x90
반응형

이 글에서는 내가 리눅스에 설치한 MySQL과 윈도우에 설치한 하이디 SQL을 연동하며 생겼던 에러들을 정리하고자 한다.

미리 말하지만, 여기에 써 있는 해결법이 완전한 해결법이 아닐 수 있다.

그리고 에러의 정석적인 해결법과 에러를 해결하면서 들었던 내 생각과 접근법이 틀릴 가능성 또한 높다.

나 자신도 리눅스를 오래 써보지 않았을 뿐더러 MySQL을 오래 써본 것도 아니라 괜한 고생을 하는 방향으로 접근했을 수도 있고, 이 해결법 말고도 더 좋은 해결법이 있을 수 있다. 무조건 이 해결법을 따르지 말고 이 사람은 이런 식으로 해결했구나 라고 생각했으면 한다.

 

- ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '입력한 비밀번호' at line 1

 

SQL문을 잘못 쓰면 나타나는 에러다. 대표적으로 42000이라는 숫자와 have an error라는 문구가 보인다면 내가 SQL문을 잘못 써서 이 에러가 떴구나 라고 생각하면 된다.

블로그들을 보면 MySQL 5.x 버전대에서 사용하는 SQL문이 있는데 내가 설치한 버전은 8.0.15라서 두 버전 간에 요구하는 SQL문의 양식이 다르단 걸 모르고 써서 이런 에러가 발생했다.

해결법은 MySQL 공식 홈페이지의 SQL문 관련 문서들을 읽고 5.x 버전들과 어떤 점이 다른지 공부하면서 적용하는 수밖에 없다. 아니면 8.x 버전들을 설치한 사람들이 어떤 에러가 나면 이러저러하게 해결했다고 써둔 블로그를 찾아보는 수밖에 없다.

 

- Host 'IP' is not allowed to connect to this MySQL server

MySQL은 기본적으로 로컬에서만 접속 가능하도록 되어있다. 때문에 별도의 설정을 해줘야 외부에서 원격 접속이 가능한데, 그렇게 하지 않고 외부에서 하이디 SQL같은 관리 프로그램으로 MySQL에 접속하려 하면 이런 에러가 나온다.

해결법은 SQL문 중 GRANT문을 써서 내가 쓰는 계정에 권한을 부여해주면 된다.

내가 사용한 GRANT문은 grant all privileges on *.* to 'root'@'%'; 였다. 말 그대로 모든 권한을 root 계정에 부여하는 의미의 SQL문이다. 이 SQL문 이후 flush privileges; 라고 입력해서 권한의 변동사항을 저장해줘야 한다.

이것 말고도 해당 ip에만 권한을 부여한다던가, 어떤 ip 대역만 접근할 수 있도록 권한을 부여하는 GRANT문이 있으니 자신이 설치한 버전대의 SQL문을 찾아보는 게 중요하다. 그러려면 역시 공식 홈페이지를 정독하는 게 가장 빠를 수도 있다.

 

- Access denied for user 'root'@'ip 혹은 localhost' (using password YES/NO)

 

자신의 ip, 혹은 localhost에서 사용 중인 root 계정이 접근 금지됐다는 의미다. () 안의 Y/N은 비밀번호 설정 여부를 나타낸다. 확실하진 않지만 하이디 SQL과 MySQL을 연동하는 과정에서 봤던 것 같다.

난 위의 GRANT 문을 써서 권한을 부여해주고 재접속해서 해결했다.

재접속이 꼭 필요한가? 라고 묻는다면 대답할 순 없다. 그냥 재접속해서 정상 작동한다면 해결된 거겠지, 라고 생각해서 재접속한 것이다.

 

 

많지는 않지만 위의 에러들을 접하고 나서 MySQL 5.x 버전대와 8.x 버전대의 에러 해결법이 각각 다르고, 각 버전별로 어떻게 에러를 접근해야 할지를 생각하게 되었다.

앞으로 MySQL을 쓰면서 생긴 에러들을 해결하게 되면 여기에 간단하게라도 기록해보려 한다.

다시 말하지만 위의 해결법들은 내 에러 상황에 맞아서 기록해 둔 것이지, 절대로 완전한 해결법이 아니다.

반응형

'PHP' 카테고리의 다른 글

[PHP] php7.x, MySQL 8.x 연동 확인하기  (0) 2019.12.29
[PHP] 포트 열기  (0) 2019.12.28
[PHP] 버추얼박스로 하이디 SQL과 MySQL 연동하기  (0) 2019.12.27
[PHP] CSS 공부 기록  (0) 2019.12.24
[PHP] HTML 공부 기록  (0) 2019.12.24
Comments