Kesalahan 1046 Tidak ada database yang Dipilih, bagaimana mengatasinya?

297

Galat kueri 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 berkata:

#1046 - No database selected

butuh bantuan di sini.

steph
sumber
7
Jika ada yang tertarik, Anda juga dapat menentukan nama database melalui perintah CLI tanpa mengedit file impor. mysql -u root -p databasename < import.sql
Sam Dufel
yang terjadi pada saya adalah: membuat skema, diisi dengan nama database, lalu dikatakan "gagal, tidak ada database yang dipilih". buka kembali meja kerja, saya melihat database yang saya baru saja gagal dibuat. Kemudian saya memilih database yang baru saja saya buat, dan membuka file .sql dan jalankan, dengan keduanya membuat database dan menggunakan pernyataan database, itu mengeluh "gagal tidak ada database yang dipilih" lagi. buka kembali meja kerja, semua tabel dibangun. Sistem MAC, meja kerja 6.3.3
Tiina

Jawaban:

409

Anda perlu memberi tahu MySQL database mana yang akan digunakan:

USE database_name;

sebelum Anda membuat tabel.

Jika basis data tidak ada, Anda harus membuatnya sebagai:

CREATE DATABASE database_name;

diikuti oleh:

USE database_name;
codaddict
sumber
8
Dalam kasus saya, saya telah menggunakan mysqldump untuk mengekspor database dan menjalankan ini setelah impor. Saya hanya perlu mengedit file sql yang diekspor untuk menambahkan dua perintah ini ke atasnya.
Bh5k
Terima kasih! Inilah yang saya butuhkan. Saya punya skrip untuk membuat database dan tabel saya tetapi tabel tidak dibuat karena saya perlu memasukkan USE tablenameperintah.
ckpepper02
1
Tulis: CREATE DATABASE IF NOT EXISTS database_name ; USE database_name;Ini berfungsi apakah database sudah dibuat atau belum.
Stian
50

Anda juga dapat memberi tahu MySQL database apa yang digunakan (jika sudah dibuat):

 mysql -u example_user -p --database=example < ./example.sql
Shay Anderson
sumber
7
Kenapa tidak mysql example -u example_user -p < ./example.sql?
Pacerier
36

Saya menghadapi kesalahan yang sama ketika saya mencoba mengimpor database yang dibuat sebelumnya. Inilah yang saya lakukan untuk memperbaiki masalah ini:

1- Buat database baru

2- Gunakan dengan useperintah

masukkan deskripsi gambar di sini

3 - Coba lagi

Ini bekerja untuk saya.

Mina Fawzy
sumber
28

Jika Anda mencoba melakukan ini melalui baris perintah ...

Jika Anda mencoba menjalankan pernyataan CREATE TABLE dari antarmuka baris perintah, Anda harus menentukan database tempat Anda bekerja sebelum menjalankan kueri:

USE your_database;

Berikut dokumentasinya .

Jika Anda mencoba melakukan ini melalui MySQL Workbench ...

... Anda perlu memilih database / katalog yang sesuai di menu tarik turun yang ditemukan di atas: Browser Objek: tab. Anda dapat menentukan skema / database / katalog default untuk koneksi - klik opsi "Kelola Koneksi" di bawah judul Pengembangan SQL pada layar splash Workbench.

Tambahan

Ini semua mengasumsikan ada database yang ingin Anda buat tabelnya - jika tidak, Anda perlu membuat database sebelum yang lain:

CREATE DATABASE your_database;
OMG Ponies
sumber
Menggunakan MySQL Workbench: Bisakah Anda memberikan gambar dengan lokasi drop down?
AdrianRM
Saya pikir ini mungkin merujuk ke versi MySQL Workbench yang lebih lama. Saya baru saja menarik versi terbaru dan saya tidak melihat tab "browser objek" di mana pun.
Tim Keating
Sepertinya Anda perlu menggunakan USE database;perintah, bahkan di MySQL Workbench (saya di v5.2.47) jika Anda mendapatkan kesalahan ini. Hanya perlu menjalankannya satu kali per tab permintaan - semua eksekusi berikutnya pada tab itu tampaknya menggunakan database dengan benar.
DACrosby
Hai, Jadi untuk wordpress sql bagaimana kita bisa "menggunakan" dalam file SQL. Bisakah Anda menjelaskannya sekali lagi. Saya memiliki masalah sekarang.
Rahul S
21

Jika Anda melakukan ini melalui phpMyAdmin:

  • Saya berasumsi Anda sudah Membuat Database MySQL baru di Situs Langsung (berdasarkan situs langsung saya maksudkan perusahaan hosting Anda (dalam kasus saya Bluehost)).

  • Buka phpMyAdmin di situs langsung - masuk ke database yang baru saja Anda buat.

  • Sekarang PENTING! Sebelum mengklik opsi "impor" di bilah atas, pilih basis data Anda di sisi kiri halaman (bilah abu-abu, di atas ada PHP Myadmin yang ditulis, di bawahnya ada dua opsi: information_schema dan nama basis data yang baru saja Anda masuki.

  • setelah Anda mengklik database yang baru saja Anda buat / masuk ke dalamnya akan menunjukkan kepada Anda database itu dan kemudian klik opsi impor.

Itu berhasil bagi saya. Sangat berharap itu bisa membantu

Roanna
sumber
Anda akan berpikir bahwa jika Anda belum berada di database, akan ada opsi pada halaman untuk memungkinkan Anda memilih satu.
Andy Mercer
15
  • Edit SQLfile Anda menggunakan Notepad atau Notepad ++
  • tambahkan 2 baris berikut:

CREATE DATABASE NAME; USE NAME;

Ayham AlKawi
sumber
Bagaimana kita bisa menulis kalau-kalau file database wordpress seperti saya mencoba untuk mengimpor menggunakan MySql Workbench tetapi tidak mendapatkan database yang dipilih
Rahul S
8

Jika mengimpor basis data, Anda harus membuatnya terlebih dahulu dengan nama yang sama, lalu pilih dan IMPOR basis data yang ada.

Semoga berhasil untuk Anda!

ivan n
sumber
Harap tambahkan beberapa detail pada jawaban Anda yang menjelaskan langkah-langkah Anda.
Starx
7

Untuk MySQL Workbench

  1. Pilih database dari tab Schemas dengan mengklik kanan mouse.
  2. Tetapkan database sebagai Skema Default

masukkan deskripsi gambar di sini

Eric Korolev
sumber
2

mengutip ivan n: "Jika mengimpor basis data, Anda harus membuatnya terlebih dahulu dengan nama yang sama, lalu pilih dan IMPOR basis data yang ada ke dalamnya. Semoga berhasil!"

Ini adalah langkah-langkahnya: Buat Database, misalnya my_db1, utf8_general_ci. Kemudian klik untuk masuk ke dalam basis data ini. Kemudian klik "impor", dan pilih basis data: my_db1.sql

Itu saja.

iversoncru
sumber
Ini harus menjadi komentar di bawah jawaban Ivan, sehingga ia dapat mengubah jawabannya untuk memasukkan langkah-langkah Anda.
Navigatron
1

pertama pilih database: USE db_name

lalu buat tabel: CREATE TABLE tb_name (id int, name varchar (255), int gaji, city varchar (255));

ini untuk sintaks versi mysql 5.5

veeru666
sumber
1

hati-hati dengan kata sandi kosong

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

akan meminta kata sandi dan mengeluh mysqldump: Got error: 1046: "No database selected" when selecting the database

masalahnya adalah bahwa -popsi mengharuskan tidak ada ruang antara -pdan kata sandi.

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

memecahkan masalah (kutipan tidak diperlukan lagi).

pengguna3338098
sumber
0

Meskipun ini adalah utas yang cukup lama, saya baru saja menemukan sesuatu. Saya membuat database baru, lalu menambahkan pengguna, dan akhirnya pergi menggunakan phpMyAdmin untuk mengunggah file .sql. kegagalan total. Sistem tidak mengenali DB mana yang saya tuju ...

Ketika saya mulai baru TANPA terlebih dahulu melampirkan pengguna baru, dan kemudian melakukan impor phpMyAdmin yang sama, itu berfungsi dengan baik.

zipzit
sumber
0

Hanya ingin menambahkan: Jika Anda membuat database di mySQL di situs langsung, kemudian masuk ke PHPMyAdmin dan database tidak muncul - keluar dari cPanel kemudian masuk kembali, buka PHPMyAdmin, dan seharusnya sudah ada sekarang.

the10thplanet
sumber
0

Untuk elemen keselamatan tambahan, saat bekerja dengan banyak DB dalam skrip yang sama Anda dapat menentukan DB dalam kueri, misalnya "buat tabel my_awesome_db.really_cool_table ...".

William T. Mallard
sumber
0

Saya terlambat, saya pikir:] soory,

Jika Anda di sini seperti saya mencari solusi ketika kesalahan ini terjadi dengan mysqldumpalih - alih mysql, coba solusi ini yang saya temukan di situs web Jerman di luar sana secara kebetulan, jadi saya ingin berbagi dengan orang-orang tunawisma yang sakit kepala seperti saya.

Jadi masalahnya terjadi karena kurangnya -databasesparameter sebelum nama database

Jadi perintah Anda harus terlihat seperti ini:

mysqldump -pdbpass -udbuser --databases dbname

Penyebab lain dari masalah dalam kasus saya adalah bahwa saya mengembangkan di lokal dan rootpengguna tidak memiliki kata sandi, jadi dalam hal ini Anda harus menggunakan --password=alih-alih -pdbpass, jadi perintah terakhir saya adalah:

mysqldump -udbuser --password= --databases dbname

Tautan ke utas lengkap (dalam bahasa Jerman): https://marius.bloggt-in-braunschweig.de/2016/04/29/solution-mysqldump-no-database-selected-when-selecting-the-database/

MoolsBytheway
sumber
-1

JST membuat DB baru di mysql.Select yang DB baru (jika Anda r menggunakan mysql phpmyadmin sekarang di atas it'l menjadi seperti 'Server:. . . . * >> Database) .Sekarang pergi ke tab impor pilih file.Import !

cs075
sumber