728x90
반응형
MySQL Error Code: 1046 해결 방법
에러 메시지:
yaml
Error Code: 1046 - No database selected
이 에러는 MySQL에서 쿼리를 실행할 때 데이터베이스를 선택하지 않아서 발생합니다.
특히 CREATE TABLE, INSERT, SELECT, UPDATE, DELETE 등의 명령어를 사용할 때 자주 발생합니다.
✅ 1. 에러 원인
- 데이터베이스를 선택하지 않고 쿼리 실행:
예를 들어, 아래와 같이 테이블을 생성하려고 하면 에러가 발생합니다.이때 Error Code: 1046 에러가 발생합니다. -
sqlCREATE 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 툴을 사용하는 경우:
- 왼쪽 패널의 **스키마(데이터베이스 목록)**에서 사용할 데이터베이스를 더블 클릭합니다.
- 선택된 데이터베이스가 굵은 글씨로 표시됩니다.
- 쿼리를 다시 실행하면 에러가 해결됩니다.
⚠️ 3. 추가 점검 사항
- 데이터베이스 존재 여부 확인:
-
sqlSHOW DATABASES;
- 데이터베이스 생성하기 (존재하지 않을 경우):
-
sqlCREATE DATABASE my_database;
- 권한 문제 확인: 만약 USE my_database; 실행 시에도 에러가 발생하면 사용자 권한이 부족할 수 있습니다.필요한 경우 관리자 권한으로 권한을 부여합니다.
-
sqlGRANT ALL PRIVILEGES ON my_database.* TO 'username'@'localhost'; FLUSH PRIVILEGES;
-
sqlSHOW GRANTS FOR 'username'@'localhost';
✅ 4. 요약
- 원인: 데이터베이스를 선택하지 않아서 발생하는 오류.
- 해결 방법:
- USE my_database;로 데이터베이스 선택.
- my_database.table_name 형식으로 데이터베이스를 직접 명시.
- MySQL Workbench에서 스키마 더블 클릭.
300x250
반응형
'IT > DB' 카테고리의 다른 글
select count(*) 이랑 select count(1) 차이는? (0) | 2025.02.14 |
---|---|
데이터베이스 COLLATION 개념은? (0) | 2025.02.06 |
sql 쿼리에서 데이터가 'com.' 으로 시작하는 값 조회하는 쿼리는? (0) | 2025.02.06 |
쿼리 sum(if 함수로 count 건수 구하는 방법? (0) | 2025.01.28 |
db safer 접속ip 변경하는 방법 (0) | 2025.01.21 |