Помилка 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
Сем Дуфель

сталося зі мною: створити схему, заповнивши ім’я бази даних, потім вона каже "не вдалося, базу даних не вибрано". знову відкрити робочий стіл, я бачу базу даних, яку я щойно створив. Потім я вибираю базу даних, яку я тільки що створив, і відкриваю. заново відкрийте верстак, всі таблиці вбудовані. Система MAC, верстак 6.3.3
Тіна

Відповіді:


408

Вам потрібно сказати 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;Це працює, чи вже створена база даних чи ні.
Стіан

50

Ви також можете сказати MySQL, яку базу даних використовувати (якщо вона вже створена):

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

7
Чому б не mysql example -u example_user -p < ./example.sqlзамість цього?
Пейсьєр

36

Я зіткнувся з тією ж помилкою, коли намагався імпортувати базу даних, створену раніше. Ось що я зробив, щоб виправити цю проблему:

1- Створіть нову базу даних

2- Використовуйте його за useкомандою

введіть тут опис зображення

3- Спробуйте ще раз

Це працює для мене.


28

Якщо ви намагаєтеся зробити це за допомогою командного рядка ...

Якщо ви намагаєтеся запустити оператор CREATE TABLE з інтерфейсу командного рядка, вам потрібно вказати базу даних, над якою ви працюєте, перш ніж виконувати запит:

USE your_database;

Ось документація .

Якщо ви намагаєтеся це зробити за допомогою MySQL Workbench ...

... вам потрібно вибрати відповідну базу даних / каталог у спадному меню, знайденому над вкладкою: Оглядач об’єктів:. Ви можете вказати схему / базу даних / каталог за замовчуванням для з'єднання - натисніть на параметри "Керувати з'єднаннями" під заголовком SQL Development на екрані сплеску Workbench.

Додаток

Все це передбачає, що є база даних, з якої ви хочете створити таблицю всередині, - якщо ні, вам потрібно створити базу даних перед чим-небудь іншим:

CREATE DATABASE your_database;

Використання MySQL Workbench: Чи можете ви надати зображення з розташуванням спадного місця?
AdrianRM

Я думаю, що це може стосуватися старішої версії MySQL Workbench. Я просто витягнув найновішу версію, і я ніде не бачу вкладки "об’єктний браузер".
Тім Кітінг

Схоже, вам потрібно використовувати USE database;команду навіть у MySQL Workbench (я в v5.2.47), якщо ви отримуєте цю помилку. Потрібно запустити його лише один раз на вкладці запитів - схоже, що всі наступні виконання на цій вкладці правильно використовують базу даних.
DACrosby

Привіт, Отже, для wordpress sql як ми можемо "використовувати" у файлі SQL. Чи можете ви ще раз уточнити це? У мене зараз проблема.
Rahul S

21

Якщо ви робите це через phpMyAdmin:

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

  • Перейдіть на phpMyAdmin на веб-сайті, що живе в реальному часі - увійдіть до створеної вами бази даних.

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

  • після натискання на базу даних, яку ви тільки що створили / увійшли до неї, ви побачите цю базу даних, а потім натисніть опцію імпорту.

Це зробив для мене трюк. Дуже сподіваюся, що це допомагає


Ви б могли подумати, що якби ви ще не були в базі даних, на сторінці з’явиться опція, яка дозволить вам вибрати її.
Енді Мерсер

15
  • Відредагуйте SQLфайл за допомогою Блокнота або Блокнота ++
  • додати наступний 2 рядок:

CREATE DATABASE NAME; USE NAME;


Як ми можемо записати у випадку для файлу бази даних Wordpress, коли я намагаюся імпортувати за допомогою MySql Workbench, але не вибрано базу даних
Rahul S

8

Якщо ви імпортуєте базу даних, вам потрібно створити її спочатку з тим самим іменем, потім вибрати її, а потім ІМПОРТИРУВАТИ до неї наявну базу даних.

Сподіваюся, це працює для вас!


Будь ласка, додайте детальну інформацію у відповідь, що пояснює ваші кроки.
Starx

7

Для MySQL Workbench

  1. Виберіть базу даних на вкладці "схеми" клацанням правою кнопкою миші.
  2. Встановити базу даних як схему за замовчуванням

введіть тут опис зображення


2

цитуючи ivan n: "Якщо ви імпортуєте базу даних, вам потрібно створити її спочатку з тим же ім'ям, а потім вибрати її, а потім ІМПОРТИРУВАТИ до неї наявну базу даних. Сподіваюся, вона працює для вас!"

Це кроки: Створіть базу даних, наприклад, my_db1, utf8_general_ci. Потім натисніть, щоб перейти до цієї бази даних. Потім натисніть "імпортувати" та виберіть базу даних: my_db1.sql

Це повинно бути все.


Це має бути коментар під відповіддю Івана, щоб він міг змінити свою відповідь, щоб включити ваші кроки.
Навігаторон

1

спершу виберіть базу даних: USE db_name

потім створена таблиця: CREATE TABLE tb_name (id int, ім'я varchar (255), зарплата 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-файлу. тотальний збій. Система не визнає, на яку БД я націлений ...

Коли я починаю свіжий БЕЗ спочатку приєднувати нового користувача, а потім виконувати той же імпорт phpMyAdmin, він працює добре.


0

Просто хотів додати: Якщо ви створюєте базу даних у mySQL на реальному веб-сайті, тоді перейдіть до PHPMyAdmin, і база даних не відображається - вихід із системи cPanel, тоді увійдіть назад, відкрийте PHPMyAdmin, і це має бути там зараз.


0

Для доданого елемента безпеки під час роботи з декількома БД в одному сценарії ви можете вказати БД у запиті, наприклад "створити таблицю my_awesome_db.really_cool_table ...".


0

Я спізнююсь, думаю:] soory,

Якщо ви знаходитесь тут, як я, шукаю рішення, коли ця помилка виникає 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/


-1

Jst створити нову БД в mysql.Select , що новий DB (якщо г використовує в даний час MySQL PHPMyAdmin на вершині it'l бути як «Сервер :. . . . * >> Бази даних) .Now перейдіть на вкладку імпорту виберіть file.Import !

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.