Hata 1046 Hiçbir veritabanı seçilmedi, nasıl çözülür?


297

Hata SQL sorgusu:

--
-- 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 şunları söyledi:

#1046 - No database selected

burada yardıma ihtiyacım var.


7
Herhangi birinin ilgilenmesi durumunda, içe aktarma dosyasını düzenlemeden CLI komutu aracılığıyla veritabanı adını da belirtebilirsiniz. mysql -u root -p databasename < import.sql
Sam Dufel

bana olan şey şuydu: veritabanının adını dolduran bir şema oluşturmak, sonra "başarısız, hiçbir veritabanı seçilmedi" diyor. tezgah yeniden açmak, ben sadece oluşturulan başarısız veritabanı görüyorum. Sonra ben yeni oluşturduğum veritabanını seçin ve bir .sql dosyasını açın ve hem veritabanı oluşturmak hem de veritabanı deyimlerini kullanmak ile, "tekrar hiçbir veritabanı seçilen başarısız" şikayet ediyor. tezgahı yeniden açın, masaların hepsi inşa edildi. MAC sistemi, çalışma tezgahı 6.3.3
Tiina

Yanıtlar:


410

Hangi veritabanının kullanılacağını MySQL'e söylemeniz gerekir:

USE database_name;

tablo oluşturmadan önce.

Veritabanı yoksa, şu şekilde oluşturmanız gerekir:

CREATE DATABASE database_name;

bunu takiben:

USE database_name;

8
Benim durumumda, bir veritabanı vermek için mysqldump kullandım ve alma üzerine bu çalışıyordu. Ben sadece bu iki komut üstüne eklemek için verilen sql dosyasını düzenlemek zorunda kaldı.
bh5k

Teşekkürler! Buna ihtiyacım vardı. Benim veritabanı ve tabloları oluşturmak için bir komut dosyası vardı ama USE tablenamekomut eklemek için gerekli çünkü tablolar oluşturuluyor değildi .
ckpepper02

1
Yaz: CREATE DATABASE IF NOT EXISTS database_name ; USE database_name;Bu veritabanı önceden yaratılmış olsun ya da olmasın çalışır.
Stian

50

Ayrıca MySQL'e hangi veritabanını kullanacağını da söyleyebilirsiniz (zaten oluşturduysanız):

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

7
Neden olmasın mysql example -u example_user -p < ./example.sql?
Pacerier

36

Daha önce oluşturulmuş bir veritabanını içe aktarmaya çalıştığımda aynı hatayla karşılaştım. İşte bu sorunu düzeltmek için yaptım:

1- Yeni veritabanı oluştur

2- göre kullanın usekomutu

resim açıklamasını buraya girin

3- Tekrar deneyin

Bu benim için çalışıyor.


28

Bunu komut satırı üzerinden yapmaya çalışıyorsanız ...

CREATE TABLE deyimini komut satırı arabiriminden çalıştırmaya çalışıyorsanız, sorguyu çalıştırmadan önce içinde çalıştığınız veritabanını belirtmeniz gerekir:

USE your_database;

İşte belgeler .

Bunu MySQL Workbench aracılığıyla yapmaya çalışıyorsanız ...

... yukarıda bulunan açılır menüden uygun veritabanı / kataloğu seçmeniz gerekir: Nesne Tarayıcısı: sekmesi. Bağlantı için varsayılan şemayı / veritabanını / kataloğu belirtebilirsiniz - Workbench açılış ekranının SQL Geliştirme başlığı altındaki "Bağlantıları Yönet" seçeneklerini tıklatın.

ek

Bu, içinde tablo oluşturmak istediğiniz bir veritabanı olduğunu varsayar - değilse, başka bir şeyden önce veritabanını oluşturmanız gerekir:

CREATE DATABASE your_database;

MySQL Workbench'i Kullanma: Açılır listenin yerini gösteren bir resim sağlayabilir misiniz?
AdrianRM

Bunun MySQL Workbench'in daha eski bir sürümüne işaret edebileceğini düşünüyorum. En güncel sürümü yeni çektim ve hiçbir yerde "nesne tarayıcı" sekmesi görmüyorum.
Tim Keating

USE database;Bu hatayı alıyorsanız, MySQL Workbench'te bile (v5.2.47'deyim) komutu kullanmanız gerektiği anlaşılıyor. Sorgu sekmesi başına yalnızca bir kez çalıştırmanız gerekir - bu sekmedeki sonraki tüm yürütmeler veritabanını doğru kullanıyor gibi görünür.
DACrosby

Merhaba, Yani wordpress sql için nasıl SQL dosyasında "kullanabilirsiniz". Lütfen bir kez daha açıklığa kavuşturabilir misiniz? Şimdi sorunu yaşıyorum.
Rahul S

21

Bunu phpMyAdmin ile yapıyorsanız:

  • Zaten Canlı Site'de yeni bir MySQL Veritabanı oluşturduğunuzu varsayıyorum (canlı site ile hosting şirketim (benim durumumda Bluehost)).

  • Canlı sitede phpMyAdmin'e gidin - az önce oluşturduğunuz veritabanına giriş yapın.

  • Şimdi ÖNEMLİ! Üst çubuktaki "içe aktar" seçeneğini tıklamadan önce, sayfanın sol tarafındaki veritabanınızı seçin (gri çubuk, üstte PHP Myadmin yazılmıştır, altında iki seçenek vardır: bilgi_sema ve az önce giriş yaptığınız veritabanının adı.

  • yeni oluşturduğunuz / giriş yaptığınız veritabanını tıkladığınızda, o veritabanını gösterecek ve ardından içe aktarma seçeneğini tıklayacaktır.

Bu benim için hile yaptı. Gerçekten umarım bu yardımcı olur


Zaten veritabanında olmasaydınız, sayfada bir tane seçmenize izin veren bir seçenek olacağını düşünürdünüz.
Andy Mercer

15
  • Düzenleyin SQLkullanarak dosya Notepad veya Notepad ++
  • aşağıdaki 2 satırı ekleyin:

CREATE DATABASE NAME; USE NAME;


Wordpress veritabanı dosyası için MySql Workbench kullanarak içe aktarmaya çalışıyorum, ancak hiçbir veritabanı seçilmeden nasıl yazabiliriz
Rahul S

8

Bir veritabanını içe aktarıyorsanız, önce aynı ada sahip bir tane oluşturmanız, ardından onu seçmeniz ve mevcut veritabanını İTHALATmeniz gerekir.

Umarım sizin için çalışır!


Lütfen yanıtınıza adımlarınızı açıklayan biraz ayrıntı ekleyin.
Starx

7

MySQL Workbench için

  1. Sağ tıklatarak Şemalar sekmesinden veritabanını seçin.
  2. Veritabanını Varsayılan Şema olarak ayarla

resim açıklamasını buraya girin


2

ivan n: "Bir veritabanını içe aktarıyorsanız, önce aynı adla bir tane oluşturmanız, ardından onu seçip mevcut veritabanını İTHALATIN. Umarım sizin için çalışır!"

Adımlar şunlardır: Veritabanı oluşturma, örneğin my_db1, utf8_general_ci. Ardından bu veritabanına girmek için tıklayın. Ardından "içe aktar" ı tıklayın ve veritabanını seçin: my_db1.sql

Hepsi bu kadar olmalı.


Bu Ivan'ın cevabının altında bir yorum olmalı, böylece cevabını adımlarınızı içerecek şekilde değiştirebilir.
Navigatron

1

ilk veritabanı seç: USE db_name

daha sonra tablo oluştur: TABLO OLUŞTUR tb_name (id int, ad varchar (255), maaş int, şehir varchar (255));

mysql 5.5 sürüm sözdizimi için bu


1

boş parolalara dikkat et

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

bir şifre isteyecek ve şikayet edecek mysqldump: Got error: 1046: "No database selected" when selecting the database

sorun, -pseçenek -pile parola arasında boşluk olmamasını gerektirir .

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

sorunu çözdü (tırnak işaretleri artık gerekli değil).


0

Bu oldukça eski bir iş parçacığı olmasına rağmen, ben sadece bir şey buldum. Yeni bir veritabanı oluşturdum, sonra bir kullanıcı ekledim ve sonunda .sql dosyasını yüklemek için phpMyAdmin kullanmaya gittim. toplam başarısızlık. Sistem hangi DB'yi hedeflediğimi tanımıyor ...

İlk olarak yeni bir kullanıcı iliştirmeden OLMADAN ve sonra aynı phpMyAdmin içe aktarma işlemini gerçekleştirdiğimde işe yarar.


0

Sadece eklemek istedim: Canlı bir sitede mySQL'de bir veritabanı oluşturursanız, PHPMyAdmin'e gidin ve veritabanı görünmüyor - cPanel'in oturumunu kapatıp tekrar oturum açın, PHPMyAdmin'i açın ve şimdi orada olmalıdır.


0

Ek bir güvenlik öğesi için, aynı komut dosyasında birden çok DB ile çalışırken, sorgudaki DB'yi belirtebilirsiniz, örn. "Tablo oluştur my_awesome_db.really_cool_table ...".


0

Geç kaldım bence:] soory,

Burada benim gibi mysqldumpmysql yerine bu hata oluştuğunda çözüm arıyorsanız, şans eseri orada bir Alman web sitesinde buldum bu çözümü deneyin, bu yüzden benim gibi baş ağrısı olan evsiz insanlarla paylaşmak istedim.

Bu nedenle, -databasesveritabanı adından önce lack parametresi oluşur.

Yani komutunuz şöyle görünmelidir:

mysqldump -pdbpass -udbuser --databases dbname

Benim durumumda sorunun başka bir nedeni ben yerel üzerinde geliştiriyorum ve rootkullanıcı bir şifre yok, bu nedenle --password=bunun yerine kullanmanız gerekir -pdbpass, bu yüzden son komut:

mysqldump -udbuser --password= --databases dbname

Tüm konuya bağlantı (Almanca): https://marius.bloggt-in-braunschweig.de/2016/04/29/solution-mysqldump-no-database-selected-when-selecting-the-database/


-1

: (üstte şimdi mysql phpmyadmin kullanarak r eğer Sunucu' gibi olmak it'l. jst yeni DB mysql.Select yeni DB oluşturma . . file.Import seçmek ithalat sekmesine gidin .Þimdi * >> Veritabanı.) !

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.