• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

DB 관련 질문

24.04.14 23:39 작성 조회수 64

0

실행 코드 :

show table user;

결과 :
[2024-04-14 23:34:52] [42000][1064] 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 'user' at line 1

[2024-04-14 23:34:52] [42000][1064] 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 'user' at line 1

  1. 왜 안되는지 모르겠습니다.

실행 코드 :

show tables;

결과 :

2. 저는 저런 테이블을 만든 적이 없는데 왜 저렇게 많이 나오는지 모르겠습니다.

지금 같은 상황에 어떻게 질문을 드려야할지 몰라서 이렇게 질문을 드립니다...

답변 1

답변을 작성해보세요.

0

안녕하세요 학준님! 🙂

질문 남겨주셔서 감사합니다.

 

하나씩 답변드려 보겠습니다. 👍

show table user; 라는 명령어는 없어서 syntax errorr가 발생한 것 같아요!!

user 테이블의 내용물을 보고 싶으시면, select * from user;

user 테이블의 구조를 보고 싶으시면, desc user; 를 사용하셔야 합니다!

 

다음으로 만들지 않은 테이블들이 나오는 이유는, 현재 들어간 데이터베이스가 mysql을 설치하면 기본적으로 존재하는 mysql 데이터베이스 이기 때문입니다! 여기에는 DB와 관련된 다양한 정보들이 모여 있어요!

따라서 학준님께서 만드신 데이터베이스로 이동하셔서 (show databases로 목록 확인, use [데이터베이스 이름]으로 이동입니다!) show tables를 하시면 학준님이 만드신 테이블만 확인하실 수 있습니다.

 

답변이 도움이 되었으면 좋겠습니다.

감사합니다! 🙏

김학준님의 프로필

김학준

질문자

2024.04.15

답변 감사합니다.

덕분에 지금 상황을 이해할 수 있었습니다.

 

제가 보기에는 지금 제가 쿼리를 실행하는 곳이 제가 만든 DB가 아니기에 그런 것 같습니다.

추가로 root로 접근하지 않은 것 같습니다.

 

제가 만든 db로 이동하려면 show databases 사용하거나 use library;를 사용했을 때

"null, message from server: "Host 'localhost' is not allowed to connect to this MySQL server"
이런 에러가 발생합니다. 찾아봐도 저와 비슷한 사례를 못 찾아 다시 질문을 드립니다.

말씀해주신 root로 접속하지 않은 것과 관련이 있는데요!

Database에서는 어떤 계정이 어떤 IP로 접속하는 것을 허용할지 설정할 수 있는 방법이 있습니다. 예를 들어 root 라는 계정은 154.23.15.5라는 IP에서만 접근할 수 있도록 막아두는거죠

이 경우, 제가 localhost라는 곳에서 접속하려 하면, 해당 계정은 localhost 에서 접속할 수 없다고 에러가 나오게 될겁니다.

 

따라서 이 문제를 해결하기 위해서는 지금 사용하고 있는 계정이 localhost 에서 접속할 수 있도록 설정을 변경해주어야 하는데요, https://nickjoit.tistory.com/144 와 같은 블로그 글을 참고해보셔서, 현재 유저 설정을 확인하고, 적절히 접속 허가를 해주는게 좋을 것 같습니다.

감사합니다. 🙏

김학준님의 프로필

김학준

질문자

2024.04.15

답변 감사합니다. 하지만...

image이렇게 뜹니다. 비밀번호도 아니고 어떻게 처리해야 할지 모르겠습니다... 에러코드가 뜨는 것도 아니라 찾기 애매합니다...

ctrl + C로 나온 뒤

use mysql을 사용하면 Database changed 라고 뜹니다.

 

show table;을 사용하면

이 것이 mysql 프롬프트에 있는 것처럼 뜹니다.