Error 1046 Sin base de datos seleccionada, ¿cómo resolverlo?

297

Consulta SQL de error:

--
-- 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 dijo:

#1046 - No database selected

Necesito ayuda aquí.

steph
fuente
77
En caso de que alguien esté interesado, también puede especificar el nombre de la base de datos a través del comando CLI sin editar el archivo de importación. mysql -u root -p databasename < import.sql
Sam Dufel
lo que me pasó fue: crear un esquema, completar el nombre de la base de datos, luego dice "falla, no se seleccionó ninguna base de datos". reabrir workbench, veo la base de datos que no he podido crear. Luego elijo la base de datos que acabo de crear, y abro un archivo .sql y ejecuto, con las declaraciones de creación de base de datos y uso de la base de datos, se queja de "no fallar ninguna base de datos seleccionada" nuevamente. vuelva a abrir el banco de trabajo, todas las tablas están construidas. Sistema MAC, banco de trabajo 6.3.3
Tiina

Respuestas:

410

Debe decirle a MySQL qué base de datos usar:

USE database_name;

antes de crear una tabla.

En caso de que la base de datos no exista, debe crearla como:

CREATE DATABASE database_name;

seguido por:

USE database_name;
codictorio
fuente
8
En mi caso, usé mysqldump para exportar una base de datos y me encontré con esto al importar. Solo tuve que editar el archivo sql exportado para agregar estos dos comandos a la parte superior.
bh5k
¡Gracias! Esto es lo que necesitaba. Tenía un script para crear mi base de datos y tablas, pero las tablas no se creaban porque necesitaba insertar el USE tablenamecomando.
ckpepper02
1
Escribir: CREATE DATABASE IF NOT EXISTS database_name ; USE database_name;esto funciona si la base de datos ya está creada o no.
Stian
50

También puede decirle a MySQL qué base de datos usar (si ya la ha creado):

 mysql -u example_user -p --database=example < ./example.sql
Shay Anderson
fuente
77
¿Por qué no en su mysql example -u example_user -p < ./example.sqllugar?
Pacerier
36

Me enfrenté al mismo error cuando intenté importar una base de datos creada desde antes. Esto es lo que hice para solucionar este problema:

1- Crear nueva base de datos

2- Úselo por usecomando

ingrese la descripción de la imagen aquí

3- Intenta nuevamente

Esto funciona para mi.

Mina Fawzy
fuente
28

Si está intentando hacer esto a través de la línea de comando ...

Si está intentando ejecutar la instrucción CREATE TABLE desde la interfaz de línea de comandos, debe especificar la base de datos en la que está trabajando antes de ejecutar la consulta:

USE your_database;

Aquí está la documentación .

Si está intentando hacer esto a través de MySQL Workbench ...

... necesita seleccionar la base de datos / catálogo apropiado en el menú desplegable que se encuentra arriba de la pestaña: Explorador de objetos:. Puede especificar el esquema / base de datos / catálogo predeterminados para la conexión: haga clic en las opciones "Administrar conexiones" debajo del encabezado Desarrollo SQL de la pantalla de inicio de Workbench.

Apéndice

Todo esto supone que hay una base de datos para la que desea crear la tabla; de lo contrario, debe crear la base de datos antes que nada:

CREATE DATABASE your_database;
Ponis OMG
fuente
Uso de MySQL Workbench: ¿podría proporcionar una imagen con la ubicación del menú desplegable?
AdrianRM
Estoy pensando que esto podría referirse a una versión anterior de MySQL Workbench. Acabo de sacar la versión más reciente y no veo una pestaña de "buscador de objetos" en ningún lado.
Tim Keating
Parece que necesita usar el USE database;comando, incluso en MySQL Workbench (estoy en v5.2.47) si está recibiendo este error. Solo es necesario ejecutarlo una vez por pestaña de consulta: todas las ejecuciones posteriores en esa pestaña parecen usar la base de datos correctamente.
DACrosby
Hola, Entonces, para WordPress SQL, ¿cómo podemos "usar" en el archivo SQL. ¿Puedes aclarar eso una vez más? Estoy teniendo el problema ahora.
Rahul S
21

Si está haciendo esto a través de phpMyAdmin:

  • Supongo que ya creó una nueva base de datos MySQL en el sitio en vivo (por sitio en vivo me refiero a la empresa con la que está alojando (en mi caso, Bluehost)).

  • Vaya a phpMyAdmin en el sitio en vivo; inicie sesión en la base de datos que acaba de crear.

  • Ahora importante! Antes de hacer clic en la opción "Importar" en la barra superior, seleccione su base de datos en el lado izquierdo de la página (la barra gris, en la parte superior tiene PHP Myadmin escrito, debajo hay dos opciones: información_esquema y nombre de la base de datos que acaba de iniciar sesión.

  • una vez que haga clic en la base de datos que acaba de crear / iniciar sesión, le mostrará esa base de datos y luego hará clic en la opción de importación.

Eso hizo el truco para mí. Realmente espero que eso ayude

Roanna
fuente
Pensaría que si aún no estuviera en la base de datos, habría una opción en la página que le permitiría seleccionar una.
Andy Mercer
15
  • Edite su SQLarchivo usando Notepad o Notepad ++
  • agregue la siguiente línea 2:

CREATE DATABASE NAME; USE NAME;

Ayham AlKawi
fuente
¿Cómo podemos escribir en el caso de archivo de base de WordPress como Estoy tratando de importar el uso de MySQL Workbench pero conseguir ninguna base de datos seleccionada
Rahul S
8

Si importa una base de datos, primero debe crear una con el mismo nombre, luego seleccionarla y luego IMPORTAR la base de datos existente.

¡Espero que funcione para ti!

ivan n
fuente
Agregue algunos detalles en su respuesta explicando sus pasos.
Starx
7

Para MySQL Workbench

  1. Seleccione la base de datos de la pestaña Esquemas haciendo clic con el botón derecho del mouse.
  2. Establecer base de datos como esquema predeterminado

ingrese la descripción de la imagen aquí

Eric Korolev
fuente
2

citando a ivan n: "Si importa una base de datos, primero debe crear una con el mismo nombre, luego seleccionarla y luego IMPORTAR la base de datos existente. ¡Espero que funcione para usted!"

Estos son los pasos: Crear una base de datos, por ejemplo my_db1, utf8_general_ci. Luego haga clic para acceder a esta base de datos. Luego haga clic en "importar" y seleccione la base de datos: my_db1.sql

Eso debería ser todo.

iversoncru
fuente
Este debería ser un comentario debajo de la respuesta de Ivan, para que pueda cambiar su respuesta para incluir sus pasos.
Navigatron
1

primero seleccione la base de datos: USE db_name

luego creat table: CREATE TABLE tb_name (id int, name varchar (255), salarry int, city varchar (255));

esto para la sintaxis de la versión mysql 5.5

veeru666
fuente
1

tenga cuidado con las contraseñas en blanco

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

le pedirá una contraseña y se quejará con mysqldump: Got error: 1046: "No database selected" when selecting the database

El problema es que la -popción requiere que no haya espacio entre -py la contraseña.

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

resolvió el problema (ya no se necesitan comillas).

usuario3338098
fuente
0

Aunque este es un hilo bastante viejo, acabo de descubrir algo. Creé una nueva base de datos, luego agregué un usuario y finalmente utilicé phpMyAdmin para cargar el archivo .sql. fracaso total. El sistema no reconoce a qué DB estoy apuntando ...

Cuando empiezo de nuevo SIN vincular primero a un nuevo usuario y luego realizo la misma importación de phpMyAdmin, funciona bien.

zipzit
fuente
0

Solo quería agregar: si crea una base de datos en mySQL en un sitio en vivo, ingrese a PHPMyAdmin y la base de datos no se muestra: cierre la sesión de cPanel y luego vuelva a iniciarla, abra PHPMyAdmin, y debería estar allí ahora.

the10thplanet
fuente
0

Para un elemento adicional de seguridad, cuando trabaje con múltiples bases de datos en el mismo script, puede especificar la base de datos en la consulta, por ejemplo, "crear tabla my_awesome_db.really_cool_table ...".

William T. Mallard
fuente
0

Llego tarde, creo:] soory,

Si está aquí, como yo, buscando la solución cuando se produce este error en mysqldumplugar de mysql, pruebe esta solución que encontré en un sitio web alemán por casualidad, por lo que quería compartirla con personas sin hogar que tenían dolores de cabeza como yo.

Entonces el problema ocurre porque falta el -databasesparámetro antes del nombre de la base de datos

Entonces su comando debe verse así:

mysqldump -pdbpass -udbuser --databases dbname

Otra causa del problema en mi caso fue que estoy desarrollando en local y el rootusuario no tiene una contraseña, por lo que en este caso debe usar en --password=lugar de -pdbpass, por lo que mi comando final fue:

mysqldump -udbuser --password= --databases dbname

Enlace al hilo completo (en alemán): https://marius.bloggt-in-braunschweig.de/2016/04/29/solution-mysqldump-no-database-selected-when-selecting-the-database/

Mools Por cierto
fuente
-1

JST crear una nueva base de datos en mysql.Select que la nueva base de datos (si R utilizando phpmyadmin mysql ahora en la parte superior it'l ser como 'Servidor:. . . . * >> base de datos) .Now ir a la pestaña de importación seleccione file.Import !

cs075
fuente