오류 1046 데이터베이스가 선택되지 않았습니다. 어떻게 해결합니까?


297

오류 SQL 쿼리 :

--
-- Database: `work`
--
-- --------------------------------------------------------
--
-- Table structure for table `administrators`
--
CREATE TABLE IF NOT EXISTS `administrators` (

`user_id` varchar( 30 ) NOT NULL ,
`password` varchar( 30 ) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = latin1;

MySQL은 말했다 :

#1046 - No database selected

여기에 도움이 필요합니다.


7
관심이있는 사람은 가져 오기 파일을 편집하지 않고 CLI 명령을 통해 데이터베이스 이름을 지정할 수도 있습니다. mysql -u root -p databasename < import.sql
Sam Dufel

나에게 일어난 일은 데이터베이스 이름으로 채워진 스키마를 만든 다음 "실패한 데이터베이스가 없습니다"라는 것입니다. 워크 벤치를 다시 열면 방금 생성하지 못한 데이터베이스가 표시됩니다. 그런 다음 방금 생성 한 데이터베이스를 선택하고 .sql 파일을 열고 데이터베이스 생성 및 데이터베이스 사용 문을 사용하여 "실패한 데이터베이스를 선택하지 않았습니다"라는 메시지가 다시 표시됩니다. 워크 벤치를 다시 열면 테이블이 모두 빌드됩니다. MAC 시스템, 워크 벤치 6.3.3
Tiina

답변:


409

사용할 데이터베이스를 MySQL에 알려야합니다.

USE database_name;

테이블을 만들기 전에

데이터베이스가 존재하지 않는 경우 다음과 같이 작성해야합니다.

CREATE DATABASE database_name;

뒤에 :

USE database_name;

8
필자의 경우 mysqldump를 사용하여 데이터베이스를 내보내고 가져올 때이 데이터베이스를 실행했습니다. 방금 내 보낸 sql 파일을 편집하여이 두 명령을 맨 위에 추가해야했습니다.
bh5k

감사! 이것이 내가 필요한 것입니다. 데이터베이스와 테이블을 작성하는 스크립트가 있었지만 USE tablename명령 을 삽입해야했기 때문에 테이블이 작성되지 않았습니다 .
ckpepper02

1
쓰기 : CREATE DATABASE IF NOT EXISTS database_name ; USE database_name;데이터베이스가 이미 생성되었는지 여부에 관계없이 작동합니다.
Stian

50

사용할 데이터베이스를 MySQL에 알려줄 수도 있습니다 (이미 생성 한 경우).

 mysql -u example_user -p --database=example < ./example.sql

7
mysql example -u example_user -p < ./example.sql대신에?
Pacerier

36

이전에서 만든 데이터베이스를 가져 오려고 할 때도 같은 오류가 발생했습니다. 이 문제를 해결하기 위해 수행 한 작업은 다음과 같습니다.

1- 새 데이터베이스 생성

2- use명령으로 사용

여기에 이미지 설명을 입력하십시오

3- 다시 시도

이것은 나를 위해 작동합니다.


28

명령 행을 통해이 작업을 수행하려는 경우 ...

명령 행 인터페이스에서 CREATE TABLE 문을 실행하려는 경우 조회를 실행하기 전에 작업중인 데이터베이스를 지정해야합니다.

USE your_database;

문서는 다음과 같습니다 .

MySQL Workbench를 통해이 작업을 수행하려는 경우 ...

... : Object Browser : 탭 위에있는 드롭 다운 메뉴에서 적절한 데이터베이스 / 카탈로그를 선택해야합니다. 연결에 대한 기본 스키마 / 데이터베이스 / 카탈로그를 지정할 수 있습니다. 워크 벤치 시작 화면의 SQL 개발 표제 아래에서 "연결 관리"옵션을 클릭하십시오.

추가

이 모든 것은 내부에 테이블을 만들려는 데이터베이스가 있다고 가정합니다. 그렇지 않은 경우 다른 것보다 먼저 데이터베이스를 만들어야합니다.

CREATE DATABASE your_database;

MySQL Workbench 사용 : 드롭 다운 위치가있는 이미지를 제공해 주시겠습니까?
AdrianRM

이것이 이전 버전의 MySQL Workbench를 가리키는 것일 수 있습니다. 방금 최신 버전을 가져 왔는데 "개체 브라우저"탭이 표시되지 않습니다.
Tim Keating

USE database;이 오류가 발생하면 MySQL Workbench (v5.2.47에 있음)에서도 명령 을 사용해야하는 것처럼 보입니다 . 쿼리 탭당 한 번만 실행하면됩니다. 해당 탭의 모든 후속 실행은 데이터베이스를 올바르게 사용하는 것 같습니다.
DACrosby 2011

안녕하세요, 그래서 WordPress SQL의 경우 SQL 파일에서 어떻게 "사용"할 수 있습니까? 다시 한번 설명해 주시겠습니까? 지금 문제가 있습니다.
Rahul S

21

phpMyAdmin을 통해이 작업을 수행하는 경우 :

  • 라이브 사이트에 새로운 MySQL 데이터베이스를 이미 만들었다 고 가정합니다 (라이브 사이트는 호스팅하는 회사를 의미합니다 (내 경우 Bluehost)).

  • 라이브 사이트에서 phpMyAdmin으로 이동-방금 만든 데이터베이스에 로그인하십시오.

  • 지금 중요! 상단 표시 줄에서 "가져 오기"옵션을 클릭하기 전에 페이지 왼쪽에서 데이터베이스를 선택하십시오 (회색 막대의 상단에는 PHP Myadmin이 작성되어 있으며 그 아래에는 info_schema 및 방금 로그인 한 데이터베이스 이름의 두 가지 옵션이 있습니다).

  • 방금 생성 / 로그인 한 데이터베이스를 클릭하면 해당 데이터베이스가 표시되고 가져 오기 옵션을 클릭합니다.

그것은 나를 위해 속임수를했다. 정말 도움이 희망


아직 데이터베이스에 있지 않은 경우 페이지에 옵션을 선택할 수있는 옵션이 있다고 생각합니다.
Andy Mercer

15
  • 메모장 또는 메모장 ++을SQL 사용 하여 파일 편집
  • 다음 두 줄을 추가하십시오.

CREATE DATABASE NAME; USE NAME;


MySql Workbench를 사용하여 가져 오려고하지만 데이터베이스가 선택되지 않은 경우 워드 프레스 데이터베이스 파일의 경우 어떻게 작성할 수 있습니까?
Rahul S

8

데이터베이스를 가져 오는 경우 먼저 동일한 이름으로 데이터베이스를 작성하고 선택한 다음 기존 데이터베이스를 데이터베이스로 가져와야합니다.

그것이 당신을 위해 작동하기를 바랍니다!


단계를 설명하는 답변에 세부 사항을 추가하십시오.
Starx

7

MySQL 워크 벤치

  1. 마우스 오른쪽 버튼을 클릭하여 스키마 탭에서 데이터베이스를 선택하십시오.
  2. 데이터베이스를 기본 스키마로 설정

여기에 이미지 설명을 입력하십시오


2

ivaning : "데이터베이스를 가져 오는 경우 먼저 같은 이름으로 데이터베이스를 생성 한 다음 선택하고 기존 데이터베이스를 가져와야합니다. 그것이 효과가 있기를 바랍니다."

단계는 다음과 같습니다. 데이터베이스를 작성하십시오 (예 : my_db1, utf8_general_ci). 그런 다음 클릭하여이 데이터베이스로 이동하십시오. 그런 다음 "import"를 클릭하고 데이터베이스를 선택하십시오. my_db1.sql

그게 다야.


이것은 Ivan의 답변 아래에 주석이어야하므로 단계를 포함하도록 답변을 변경할 수 있습니다.
Navigatron

1

먼저 데이터베이스 선택 : USE db_name

그런 다음 creat table : CREATE TABLE tb_name (id int, name varchar (255), salary int, city varchar (255));

이것은 MySQL 5.5 버전 구문의 경우


1

빈 암호에주의하십시오

mysqldump [options] -p '' --databases database_name

비밀번호를 요청하고 mysqldump: Got error: 1046: "No database selected" when selecting the database

문제는 -p옵션을 사용하려면 -p비밀번호와 비밀번호 사이에 공백이 없어야한다는 것 입니다.

mysqldump [options] -p'' --databases database_name

문제를 해결했습니다 (더 이상 인용이 필요하지 않습니다).


0

이것은 꽤 오래된 스레드이지만 방금 뭔가를 발견했습니다. 새 데이터베이스를 만든 다음 사용자를 추가하고 phpMyAdmin을 사용하여 .sql 파일을 업로드했습니다. 총 실패. 시스템이 내가 목표로하는 DB를 인식하지 못합니다 ...

처음으로 새 사용자를 연결하지 않고 새로 시작한 다음 동일한 phpMyAdmin 가져 오기를 수행하면 정상적으로 작동합니다.


0

추가하고 싶었습니다 : 라이브 사이트에서 mySQL로 데이터베이스를 생성하면 PHPMyAdmin으로 이동하여 데이터베이스가 표시되지 않습니다-cPanel에서 로그 아웃 한 다음 다시 로그인하여 PHPMyAdmin을 열면 데이터베이스가 있어야합니다.


0

안전성을 높이기 위해 동일한 스크립트에서 여러 DB를 작업 할 때 쿼리에서 DB를 지정할 수 있습니다 (예 : "create my_awesome_db.really_cool_table ...").


0

늦었다 고 생각합니다.]

mysqldumpmysql 대신 이 오류가 발생할 때 솔루션을 검색하는 것처럼 여기 에 있다면 독일 웹 사이트에서 우연히 발견 한이 솔루션을 사용해보십시오. 그래서 나 같은 두통을 앓고있는 노숙자들과 공유하고 싶었습니다.

-databases데이터베이스 이름 앞에 매개 변수 가 없기 때문에 문제가 발생합니다.

따라서 명령은 다음과 같아야합니다.

mysqldump -pdbpass -udbuser --databases dbname

내 경우 문제의 또 다른 원인은 로컬에서 개발 중이고 root사용자에게 암호가 없기 때문에이 경우 --password=대신 대신 사용해야 -pdbpass하므로 최종 명령은 다음과 같습니다.

mysqldump -udbuser --password= --databases dbname

전체 스레드 링크 (독일어) : https://marius.bloggt-in-braunschweig.de/2016/04/29/solution-mysqldump-no-database-selected-when-selecting-the-database/


-1

(당신은 상단에 현재 MySQL의 phpMyAdmin에를 사용하여 r에 경우 서버 '처럼 it'l. JST 것을 새로운 DB mysql.Select에 새로운 DB를 생성 . . file.Import를 가져 오기를 선택 탭으로 이동 부탁해 * >> 데이터베이스.) !

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.