오류 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.