본문 바로가기

IT/DB

mysql Error Code: 1046 해결 방법

728x90
반응형

 

 

MySQL Error Code: 1046 해결 방법

에러 메시지:

yaml
 
Error Code: 1046 - No database selected
 
 

이 에러는 MySQL에서 쿼리를 실행할 때 데이터베이스를 선택하지 않아서 발생합니다.

 

특히 CREATE TABLE, INSERT, SELECT, UPDATE, DELETE 등의 명령어를 사용할 때 자주 발생합니다.


1. 에러 원인

  • 데이터베이스를 선택하지 않고 쿼리 실행:
    예를 들어, 아래와 같이 테이블을 생성하려고 하면 에러가 발생합니다.이때 Error Code: 1046 에러가 발생합니다.
  • sql
     
    CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50) );

🚩 2. 해결 방법

방법 1: 데이터베이스 선택하기

쿼리를 실행하기 전에 사용할 데이터베이스를 명시적으로 선택하세요.

sql
USE my_database;
 

그다음 테이블을 생성합니다.

sql
CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50) );
  • 설명:
    • my_database는 실제로 존재하는 데이터베이스 이름으로 변경해야 합니다.
    • USE 명령어로 데이터베이스를 선택하면 해당 세션 동안 유지됩니다.

방법 2: 데이터베이스 이름 명시하기

테이블이나 쿼리에서 데이터베이스 이름을 직접 지정할 수도 있습니다.

sql
CREATE TABLE my_database.users ( id INT PRIMARY KEY, name VARCHAR(50) );

 

또는 INSERT, SELECT 시에도 다음과 같이 작성합니다.

 
sql
INSERT INTO my_database.users (id, name) VALUES (1, 'Alice'); SELECT * FROM my_database.users;
  • 장점:
    • 데이터베이스를 명시하기 때문에 USE 명령어 없이도 에러 없이 작동합니다.

 

방법 3: MySQL Workbench에서 데이터베이스 선택

 

MySQL Workbench 또는 다른 GUI 툴을 사용하는 경우:

  1. 왼쪽 패널의 **스키마(데이터베이스 목록)**에서 사용할 데이터베이스를 더블 클릭합니다.
  2. 선택된 데이터베이스가 굵은 글씨로 표시됩니다.
  3. 쿼리를 다시 실행하면 에러가 해결됩니다.

⚠️ 3. 추가 점검 사항

  1. 데이터베이스 존재 여부 확인:
  2. sql
    SHOW DATABASES;
  3. 데이터베이스 생성하기 (존재하지 않을 경우):
  4. sql
    CREATE DATABASE my_database;
  5. 권한 문제 확인: 만약 USE my_database; 실행 시에도 에러가 발생하면 사용자 권한이 부족할 수 있습니다.필요한 경우 관리자 권한으로 권한을 부여합니다.
  6. sql
    GRANT ALL PRIVILEGES ON my_database.* TO 'username'@'localhost'; FLUSH PRIVILEGES;
  7. sql
    SHOW GRANTS FOR 'username'@'localhost';

4. 요약

  • 원인: 데이터베이스를 선택하지 않아서 발생하는 오류.
  • 해결 방법:
    1. USE my_database;로 데이터베이스 선택.
    2. my_database.table_name 형식으로 데이터베이스를 직접 명시.
    3. MySQL Workbench에서 스키마 더블 클릭.
300x250
반응형