Ошибка 1046 Нет базы данных Выбран, как решить?

238

Ошибка 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
  • 0
    что случилось со мной было: создайте схему, заполнив имя базы данных, затем он говорит: «ошибка, база данных не выбрана». снова откройте верстак, я вижу базу данных, которую мне только что не удалось создать. Затем я выбираю базу данных, которую только что создал, открываю файл .sql и запускаю, с созданием базы данных и использованием операторов базы данных, он жалуется, что «база данных не выбрана снова». откройте верстак, все столы построены. Система MAC, верстак 6.3.3
Теги:
mysql-error-1046

15 ответов

334

Вам нужно указать MySQL, какую базу данных использовать:

USE database_name;

прежде чем создавать таблицу.

Если база данных не существует, вам необходимо создать ее как:

CREATE DATABASE database_name;

а затем:

USE database_name;
  • 7
    В моем случае, я использовал mysqldump для экспорта базы данных и столкнулся с этим при импорте. Мне просто нужно было отредактировать экспортированный файл sql, чтобы добавить эти две команды в начало.
  • 0
    Спасибо! Это то, что мне было нужно. У меня был скрипт для создания моей базы данных и таблиц, но таблицы не создавались, потому что мне нужно было вставить команду USE tablename .
Показать ещё 2 комментария
40

Вы также можете указать MySQL, какую базу данных использовать (если она уже создана):

 mysql -u example_user -p --database=example < ./example.sql
  • 7
    Почему бы не использовать mysql example -u example_user -p < ./example.sql ?
25

Я столкнулся с такой же ошибкой, когда попытался импортировать базу данных, созданную ранее. Вот что я сделал, чтобы исправить эту проблему:

1- Создать новую базу данных

2- Используйте его с use команды

Изображение 881

3- Повторите попытку

Это работает для меня.

  • 0
    Это работает и для меня. знак равно
25

Если вы пытаетесь сделать это с помощью командной строки...

Если вы пытаетесь запустить оператор CREATE TABLE из интерфейса командной строки, вам нужно указать базу данных, в которой вы работаете, перед выполнением запроса:

USE your_database;

Здесь документация.

Если вы пытаетесь сделать это через MySQL Workbench...

... вам нужно выбрать соответствующую базу данных/каталог в раскрывающемся меню, расположенном над вкладкой "Обозреватель объектов: вкладка". Вы можете указать стандартную схему/базу данных/каталог для подключения - нажмите "Управление соединениями" в разделе "Развитие SQL" экрана заставки Workbench.

Добавление

Все это предполагает наличие базы данных, в которой вы хотите создать таблицу внутри - если нет, вам нужно создать базу данных прежде всего:

CREATE DATABASE your_database;
  • 0
    Использование MySQL Workbench: Не могли бы вы предоставить изображение с расположением раскрывающегося списка?
  • 0
    Я думаю, что это может относиться к более старой версии MySQL Workbench. Я только что вытащил самую последнюю версию и нигде не вижу вкладку "обозреватель объектов".
Показать ещё 2 комментария
16

Если вы делаете это через phpMyAdmin:

  • Я предполагаю, что вы уже создали новую базу данных MySQL на Live-сайте (на живом сайте я имею в виду компанию, в которой ваш хостинг (в моем случае Bluehost)).

  • Перейдите в phpMyAdmin на сайте live - войдите в базу данных, которую вы только что создали.

  • Теперь ВАЖНО! Прежде чем нажимать кнопку "импорт" на верхней панели, выберите свою базу данных в левой части страницы (серая полоса, сверху вверху написан PHP Myadmin, под ней два параметра: information_schema и имя базы данных, в которую вы только вошли.

  • после того, как вы щелкнете базу данных, которую вы только что создали/вошли в нее, она покажет вам эту базу данных и затем щелкните параметр импорта.

Это трюк для меня. Надеюсь, что поможет

  • 0
    Вы могли бы подумать, что если вы еще не были в базе данных, на странице будет вариант, позволяющий вам выбрать один.
11
  • Отредактируйте свой SQL файл, используя Блокнот или Блокнот ++
  • добавьте следующую строку:

CREATE DATABASE NAME; USE NAME;

  • 0
    Как мы можем написать в случае для файла базы данных WordPress, как я пытаюсь импортировать с помощью MySql Workbench, но не получая базы данных выбран
  • 0
    Можем ли мы использовать любой другой редактор? ;)
6

Если вы импортируете базу данных, вам нужно сначала создать ее с тем же именем, затем выбрать ее, а затем импортировать в нее существующую базу данных.

Надеюсь, что это сработает для вас!

  • 0
    Пожалуйста, добавьте некоторые детали в ваш ответ, объясняя ваши шаги.
2

цитирование ivan n: "Если вы импортируете базу данных, вам нужно сначала создать ее с тем же именем, а затем выбрать ее, а затем импортировать в нее существующую базу данных. Надеюсь, это сработает для вас! "

Это следующие шаги: Создайте базу данных, например my_db1, utf8_general_ci. Затем нажмите, чтобы войти в эту базу данных. Затем нажмите "импорт" и выберите базу данных: my_db1.sql

Это должно быть все.

  • 0
    Это должен быть комментарий под ответом Ивана, чтобы он мог изменить свой ответ, включив в него ваши шаги.
1

сначала выберите базу данных: USE db_name

тогда таблица creat: CREATE TABLE tb_name (  id int,  имя varchar (255),  зарплата int, город варчар (255) );

this для синтаксиса версии mysql 5.5

0

Для MySQL Workbench

  1. Выберите базу данных со вкладки Схемы, щелкнув правой кнопкой мыши.
  2. Установить базу данных как схему по умолчанию

Изображение 882

0

Я опаздываю, думаю:] Сори,

Если вы здесь, как я, ища решение, когда эта ошибка возникает с 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/

0

Для дополнительного элемента безопасности при работе с несколькими БД в том же script вы можете указать БД в запросе, например. msgstr "создать таблицу my_awesome_db.really_cool_table...".

0

Просто хотел добавить: если вы создаете базу данных в mySQL на живом сайте, перейдите в PHPMyAdmin, и база данных не появится - выход из cPanel, затем войдите в систему, откройте PHPMyAdmin, и он должен быть там сейчас.

0

Хотя это довольно старый поток, я только что нашел что-то. Я создал новую базу данных, затем добавил пользователя и, наконец, пошел использовать phpMyAdmin для загрузки файла .sql. общий сбой. Система не распознает, к какой базе данных я стремился...

Когда я начинаю новый БЕЗ с первого присоединения нового пользователя, а затем выполняет тот же импорт phpMyAdmin, он отлично работает.

-1

jst создайте новую базу данных в mysql. Выберите этот новый DB. (если вы используете mysql phpmyadmin сейчас, то наверху он будет похож на "Сервер: ... * → База данных). Теперь перейдите на вкладку импорта, выберите файл. Импорт!

  • 1
    Роанна уже опубликовала это в 2014 году

Ещё вопросы

Сообщество Overcoder
Наверх
Меню