Ошибка 1046 Нет базы данных Выбран, как решить?
Ошибка 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
нужна помощь здесь
22 ответа
Вы должны указать MySQL, какую базу данных использовать:
USE database_name;
прежде чем создать таблицу.
Если база данных не существует, вам нужно создать ее как:
CREATE DATABASE database_name;
с последующим:
USE database_name;
Вы также можете указать MySQL, какую базу данных использовать (если она уже создана):
mysql -u example_user -p --database=example < ./example.sql
Я столкнулся с той же ошибкой, когда пытался импортировать базу данных, созданную ранее. Вот что я сделал, чтобы исправить эту проблему:
1- Создать новую базу данных
2- Используйте его use
команда
3- Попробуй еще раз
Это работает для меня.
Если вы пытаетесь сделать это через командную строку...
Если вы пытаетесь запустить оператор CREATE TABLE из интерфейса командной строки, вам нужно указать базу данных, в которой вы работаете, перед выполнением запроса:
USE your_database;
Вот документация.
Если вы пытаетесь сделать это через MySQL Workbench...
... вам нужно выбрать соответствующую базу данных / каталог в раскрывающемся меню, расположенном над вкладкой: Обозреватель объектов: Вы можете указать схему / базу данных / каталог по умолчанию для соединения - выберите параметры "Управление соединениями" под заголовком "Разработка SQL" заставки Workbench.
добавление
Все это предполагает, что есть база данных, внутри которой вы хотите создать таблицу - если нет, вам нужно создать базу данных прежде всего:
CREATE DATABASE your_database;
Для MySQL Workbench
- Выберите базу данных на вкладке Схемы, щелкнув правой кнопкой мыши.
- Установить базу данных в качестве схемы по умолчанию
https://s tackru.com/images/7e9bffaf4931e748fbfcd70c30734b0391098717.png
Если вы делаете это через phpMyAdmin:
Я предполагаю, что вы уже создали новую базу данных MySQL на Live Site (под живым сайтом я имею в виду компанию, с которой вы работаете (в моем случае Bluehost)).
Зайдите на phpMyAdmin на действующий сайт - войдите в базу данных, которую вы только что создали.
Теперь ВАЖНО! Прежде чем щелкнуть опцию "импорт" на верхней панели, выберите вашу базу данных в левой части страницы (на серой панели, сверху написано PHP Myadmin, под ней два параметра: информационная_схема и имя базы данных, в которую вы только что вошли.
Как только вы щелкнете по базе данных, которую вы только что создали / вошли в нее, вам будет показана эта база данных, а затем щелкните вариант импорта.
Это помогло мне. Очень надеюсь, что это помогает
Предполагая, что вы используете командную строку:
1. Найдите базу данных
show databases;
2. Выберите базу данных из списка.
например
USE classicmodels;
и ты должен быть на гонках! (Очевидно, вам придется использовать базу данных с правильным именем в вашем списке.
Почему возникает эта ошибка?
Mysql требует, чтобы вы выбрали конкретную базу данных, над которой вы работаете. Я предполагаю, что это дизайнерское решение, которое они приняли: оно позволяет избежать множества потенциальных проблем: например, вы вполне можете использовать одни и те же имена таблиц в нескольких базах данных, например,
users
Таблица. Чтобы избежать подобных проблем, они, вероятно, подумали: «Давайте заставим пользователей выбирать нужную базу данных».
- Отредактируйте свой
SQL
файл с помощью Блокнота или Блокнота ++ - добавьте следующие 2 строки:
CREATE DATABASE NAME;
USE NAME;
Если вы импортируете базу данных, вам нужно сначала создать ее с тем же именем, затем выбрать ее, а затем ИМПОРТИРОВАТЬ в нее существующую базу данных.
Надеюсь, это работает для вас!
Будьте осторожны с пустыми паролями
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
решил проблему (кавычки больше не нужны).
Решение с примером
- Ошибка
происходит, когда мы пропускаем связь нашей таблицы с базой данных. В этом случае у нас нет никакой базы данных, поэтому сначала мы создадим новую базу данных, а затем дадим указание использовать эту базу данных для созданной таблицы.
# At first you have to create Database
CREATE DATABASE student_sql;
# Next, specify the database to use
USE student_sql;
# Demo: create a table
CREATE TABLE student_table(
student_id INT PRIMARY KEY,
name VARCHAR(20),
major VARCHAR(20)
);
# Describe the table
describe student_table;
Сначала убедитесь, что вы создали нужную базу данных.
Если вы не создали базу данных, вам нужно запустить этот запрос:
CREATE DATABASE data_base_name
Если вы уже создали базу данных, вы можете просто запустить этот запрос, и вы сможете создать таблицу в своей базе данных:
CREATE TABLE `data_base_name`.`table_name` (
_id int not null,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (_id)
);
Цитата ivan n: "Если вы импортируете базу данных, вам нужно сначала создать ее с тем же именем, затем выбрать ее, а затем импортировать в нее существующую базу данных. Надеюсь, она работает для вас!"
Это следующие шаги: Создайте базу данных, например, my_db1, utf8_general_ci. Затем нажмите, чтобы войти в эту базу данных. Затем нажмите "импорт" и выберите базу данных: my_db1.sql
Это должно быть все.
В Amazon RDS просто напишите
use my-favorite-database
не работает, если имя этой базы данных включает тире. Кроме того, ни одно из следующего также не работает:
use "my-favorite-database"
use `my-favorite-database`
use 'my-favorite-database'
Просто нажмите кнопку «Изменить базу данных» и вуаля.
Простой
- нажмите на базу данных
- а затем нажмите «Импортировать»
без изменения файла .sql
Я опоздал, я думаю:
Если вы здесь, как я, в поисках решения, когда эта ошибка возникает с mysqldump
вместо mysql попробуйте это решение, которое я случайно нашел на немецком веб-сайте, поэтому я хотел бы поделиться с бездомными, у которых такие головные боли, как у меня.
Так что проблема возникает из-за отсутствия -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/
Я получил ту же ошибку ниже:
ОШИБКА 1046 (3D000): База данных не выбрана.
Когда я запустил этот SQL ниже:
SELECT * FROM person;
Или:
SHOW EVENTS;
Итак, я выбралapple
базу данных с использованием (USE) , как показано ниже, тогда ошибка была устранена. *Можно опустить;
:
use apple;
Или:
USE apple;
Сначала выберите базу данных: USE db_name
затем создайте таблицу:CREATE TABLE tb_name ( id int, имя varchar(255), зарплата int, город varchar(255));
это для синтаксиса версии MySQL 5.5
Просто хотел добавить: если вы создаете базу данных в mySQL на работающем сайте, затем заходите в PHPMyAdmin, и база данных не отображается - выйдите из cPanel, затем снова войдите в систему, откройте PHPMyAdmin, и он должен быть там сейчас.
Для дополнительного элемента безопасности при работе с несколькими БД в одном и том же скрипте вы можете указать БД в запросе, например, "создать таблицу my_awesome_db.really_cool_table...".
Хотя это довольно старая ветка, я кое-что узнал. Я создал новую базу данных, затем добавил пользователя и, наконец, перешел к использованию phpMyAdmin для загрузки файла.sql. полный провал. Система не распознает, к какой БД я нацеливаюсь...
Когда я начинаю заново БЕЗ присоединения нового пользователя, а затем выполняю тот же импорт phpMyAdmin, он работает нормально.
jst создайте новую базу данных в mysql. Выберите эту новую базу данных (если вы используете mysql phpmyadmin сейчас вверху, это будет похоже на 'Server:.. * >> Database). Теперь перейдите на вкладку импорта, выберите файл. Импорт!