Erro 1046 Nenhum banco de dados selecionado, como resolver?


297

Consulta de erro 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;

O MySQL disse:

#1046 - No database selected

preciso de ajuda aqui.


7
Caso alguém esteja interessado, você também pode especificar o nome do banco de dados através do comando da CLI sem editar o arquivo de importação. mysql -u root -p databasename < import.sql
Sam Dufel

o que aconteceu comigo foi: crie um esquema, preencha o nome do banco de dados e, em seguida, diga "falhar, nenhum banco de dados selecionado". reabra o ambiente de trabalho, vejo o banco de dados que acabei de criar. Depois, escolho o banco de dados que acabei de criar e abro um arquivo .sql e execute, com as instruções criar banco de dados e usar banco de dados, queixa "falhe no banco de dados selecionado" novamente. reabra a bancada de trabalho, as tabelas são todas construídas. Sistema MAC, ambiente de trabalho 6.3.3
Tiina

Respostas:


409

Você precisa dizer ao MySQL qual banco de dados usar:

USE database_name;

antes de criar uma tabela.

Caso o banco de dados não exista, é necessário criá-lo como:

CREATE DATABASE database_name;

Seguido por:

USE database_name;

8
No meu caso, eu tinha usado o mysqldump para exportar um banco de dados e estava executando isso na importação. Eu apenas tive que editar o arquivo sql exportado para adicionar esses dois comandos na parte superior.
bh5k

Obrigado! Era disso que eu precisava. Eu tinha um script para criar meu banco de dados e tabelas, mas as tabelas não estavam sendo criadas porque eu precisava inserir o USE tablenamecomando.
ckpepper02

1
Gravação: CREATE DATABASE IF NOT EXISTS database_name ; USE database_name;funciona se o banco de dados já foi criado ou não.
Stian

50

Você também pode dizer ao MySQL qual banco de dados usar (se você já o criou):

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

7
Por que não mysql example -u example_user -p < ./example.sql?
Pacerier

36

Eu enfrentei o mesmo erro quando tentei importar um banco de dados criado antes. Aqui está o que eu fiz para corrigir esse problema:

1- Criar novo banco de dados

2- Use-o por usecomando

insira a descrição da imagem aqui

3- Tente novamente

Isso funciona para mim.


28

Se você está tentando fazer isso pela linha de comando ...

Se você estiver tentando executar a instrução CREATE TABLE na interface da linha de comandos, precisará especificar o banco de dados em que está trabalhando antes de executar a consulta:

USE your_database;

Aqui está a documentação .

Se você está tentando fazer isso via MySQL Workbench ...

... você precisa selecionar o banco de dados / catálogo apropriado no menu suspenso encontrado acima da guia: Navegador de objetos :. Você pode especificar o esquema / banco de dados / catálogo padrão para a conexão - clique nas opções "Gerenciar conexões" no cabeçalho Desenvolvimento SQL da tela inicial do Workbench.

Termo aditivo

Isso tudo pressupõe que há um banco de dados no qual você deseja criar a tabela - se não, você precisará criar o banco de dados antes de qualquer outra coisa:

CREATE DATABASE your_database;

Usando o MySQL Workbench: Você poderia fornecer uma imagem com a localização da lista suspensa?
AdrianRM 02/02/12

Eu estou pensando que isso pode se referir a uma versão mais antiga do MySQL Workbench. Acabei de usar a versão mais atual e não vejo a guia "navegador de objetos" em lugar algum.
Tim Keating

Parece que você precisa usar o USE database;comando, mesmo no MySQL Workbench (eu estou na v5.2.47) se você estiver recebendo esse erro. Só é necessário executá-lo uma vez por guia de consulta - todas as execuções subseqüentes nessa guia parecem usar o banco de dados corretamente.
usar o seguinte código

Oi, Então, para o wordpress sql como podemos "usar" no arquivo SQL. Você pode esclarecer isso mais uma vez. Estou tendo o problema agora.
precisa

21

Se você estiver fazendo isso através do phpMyAdmin:

  • Estou assumindo que você já criou um novo banco de dados MySQL no site ao vivo (por site ao vivo, quero dizer a empresa com a qual você está hospedando (no meu caso, Bluehost)).

  • Vá para o phpMyAdmin no site ativo - entre no banco de dados que você acabou de criar.

  • Agora IMPORTANTE! Antes de clicar na opção "importar" na barra superior, selecione seu banco de dados no lado esquerdo da página (barra cinza, na parte superior, o PHP Myadmin escrito, abaixo dela duas opções: information_schema e nome do banco de dados que você acabou de acessar.

  • depois de clicar no banco de dados que você acabou de criar / conectar, ele mostrará esse banco de dados e, em seguida, clique na opção de importação.

Isso fez o truque para mim. Realmente espero que ajude


Você pensaria que, se ainda não estivesse no banco de dados, haveria uma opção na página para permitir a seleção de um.
Andy Mercer

15
  • Edite seu SQLarquivo usando o Notepad ou o Notepad ++
  • adicione a seguinte 2 linha:

CREATE DATABASE NAME; USE NAME;


Como podemos escrever em caso de arquivo de banco de dados WordPress como am tentando importação usando o MySQL Workbench, mas se nenhum banco de dados selecionado
Rahul S

8

Se estiver importando um banco de dados, é necessário criar um primeiro com o mesmo nome, selecione-o e depois IMPORTAR o banco de dados existente.

Espero que funcione para você!


Adicione alguns detalhes à sua resposta, explicando suas etapas.
Starx

7

Para MySQL Workbench

  1. Selecione o banco de dados na guia Esquemas clicando com o botão direito do mouse.
  2. Definir banco de dados como esquema padrão

insira a descrição da imagem aqui


2

citando ivan n: "Se estiver importando um banco de dados, você precisará criar um primeiro com o mesmo nome, selecione-o e depois importe o banco de dados existente para ele. Espero que funcione para você!"

Estas são as etapas: Crie um banco de dados, por exemplo, my_db1, utf8_general_ci. Em seguida, clique para acessar este banco de dados. Em seguida, clique em "importar" e selecione o banco de dados: my_db1.sql

Isso deve ser tudo.


Este deve ser um comentário abaixo da resposta de Ivan, para que ele possa alterar sua resposta para incluir suas etapas.
Navigatron

1

primeiro banco de dados selecionado: USE db_name

depois crie a tabela: CREATE TABLE nome_tabela (id int, nome varchar (255), salário int, cidade varchar (255));

isto para a sintaxe da versão do mysql 5.5


1

tenha cuidado com senhas em branco

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

solicitará uma senha e reclamará com mysqldump: Got error: 1046: "No database selected" when selecting the database

o problema é que a -popção exige que não haja espaço entre -pe a senha.

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

resolveu o problema (as aspas não são mais necessárias).


0

Embora este seja um tópico bastante antigo, acabei de descobrir algo. Criei um novo banco de dados, adicionei um usuário e, finalmente, fui usar o phpMyAdmin para carregar o arquivo .sql. falha total. O sistema não reconhece em qual banco de dados estou visando ...

Quando eu começo de novo, sem primeiro conectar um novo usuário, e depois executar a mesma importação do phpMyAdmin, ele funciona bem.


0

Só queria adicionar: Se você criar um banco de dados no mySQL em um site ativo, entre no PHPMyAdmin e o banco de dados não estará aparecendo - faça logout do cPanel e faça login novamente, abra o PHPMyAdmin, e deve estar lá agora.


0

Para um elemento adicional de segurança, ao trabalhar com vários bancos de dados no mesmo script, você pode especificar o banco de dados na consulta, por exemplo, "criar tabela my_awesome_db.really_cool_table ...".


0

Estou atrasado, eu acho:] sombrio,

Se você está aqui, como eu, procurando a solução quando esse erro ocorre com mysqldump lugar do mysql, tente esta solução que encontrei em um site alemão por acaso, então eu queria compartilhar com pessoas sem-teto que tenham dores de cabeça como eu.

Então o problema ocorre porque a falta -databases parâmetro antes do nome do banco de dados

Portanto, seu comando deve ficar assim:

mysqldump -pdbpass -udbuser --databases dbname

Outra causa do problema no meu caso foi que estou desenvolvendo no local e o rootusuário não tem uma senha, portanto, neste caso, você deve usar em --password=vez de -pdbpass, então meu comando final foi:

mysqldump -udbuser --password= --databases dbname

Link para o tópico completo (em alemão): https://marius.bloggt-in-braunschweig.de/2016/04/29/solution-mysqldump-no-database-selected-when-selecting-the-database/


-1

jst criar um novo DB em mysql.Select que a nova DB (se você r usando mysql phpmyadmin agora no topo it'l ser como 'Servidor:. . . . * >> Banco de Dados) .Agora vá para a guia de importação selecionar file.Import !

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.