ข้อผิดพลาด 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
Sam Dufel

เกิดอะไรขึ้นกับฉันคือสร้างสคีมาเติมชื่อของฐานข้อมูลจากนั้นจะแจ้งว่า "ล้มเหลวไม่มีการเลือกฐานข้อมูล" เปิด workbench อีกครั้งฉันเห็นฐานข้อมูลที่ฉันเพิ่งสร้างไม่สำเร็จ จากนั้นฉันเลือกฐานข้อมูลที่ฉันเพิ่งสร้างขึ้นและเปิดไฟล์. sql และเรียกใช้ทั้งสร้างฐานข้อมูลและใช้คำสั่งฐานข้อมูลมันบ่นว่า "ล้มเหลวไม่ได้เลือกฐานข้อมูล" อีกครั้ง เปิด workbench ใหม่ตารางทั้งหมดถูกสร้างขึ้น ระบบ MAC, workbench 6.3.3
Tiina

คำตอบ:


409

คุณต้องบอก 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;งานได้ไม่ว่าจะสร้างฐานข้อมูลอยู่แล้วหรือไม่
Stian

50

คุณสามารถบอก MySQL ว่าจะใช้ฐานข้อมูลใด (ถ้าคุณสร้างไว้แล้ว):

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

7
ทำไมไม่ลองmysql example -u example_user -p < ./example.sqlแทนล่ะ
Pacerier

36

ฉันประสบข้อผิดพลาดเดียวกันเมื่อฉันพยายามนำเข้าฐานข้อมูลที่สร้างขึ้นก่อนหน้านี้ นี่คือสิ่งที่ฉันทำเพื่อแก้ไขปัญหานี้:

1- สร้างฐานข้อมูลใหม่

2- ใช้มันโดยuseคำสั่ง

ป้อนคำอธิบายรูปภาพที่นี่

3- ลองอีกครั้ง

มันใช้งานได้สำหรับฉัน


28

หากคุณพยายามทำผ่านบรรทัดคำสั่ง ...

หากคุณกำลังพยายามเรียกใช้คำสั่ง CREATE TABLE จากอินเตอร์เฟสบรรทัดคำสั่งคุณต้องระบุฐานข้อมูลที่คุณกำลังทำงานก่อนที่จะดำเนินการค้นหา:

USE your_database;

นี่คือเอกสาร

หากคุณกำลังพยายามทำสิ่งนี้ผ่าน MySQL Workbench ...

... คุณต้องเลือกฐานข้อมูล / แคตาล็อกที่เหมาะสมในเมนูแบบเลื่อนลงซึ่งอยู่เหนือแท็บ: วัตถุเบราว์เซอร์: คุณสามารถระบุสคีมา / ฐานข้อมูล / แคตาล็อกเริ่มต้นสำหรับการเชื่อมต่อ - คลิกตัวเลือก "จัดการการเชื่อมต่อ" ภายใต้หัวข้อการพัฒนา SQL ของหน้าจอสแปลเวิร์กเบนช์

ภาคผนวก

ทั้งหมดนี้ถือว่ามีฐานข้อมูลที่คุณต้องการสร้างตารางภายใน - ถ้าไม่คุณต้องสร้างฐานข้อมูลก่อนสิ่งอื่นใด:

CREATE DATABASE your_database;

การใช้ MySQL Workbench: คุณช่วยระบุภาพสถานที่ที่จะดรอปดาวน์ได้หรือไม่?
AdrianRM

ฉันคิดว่านี่อาจหมายถึง MySQL Workbench รุ่นเก่ากว่า ฉันเพิ่งดึงเวอร์ชันล่าสุดและฉันไม่เห็นแท็บ "วัตถุเบราว์เซอร์" ที่ใดก็ได้
ทิมคีด

ดูเหมือนว่าคุณจะต้องใช้USE database;คำสั่งแม้ใน MySQL Workbench (ฉันอยู่ใน v5.2.47) หากคุณได้รับข้อผิดพลาดนี้ จำเป็นต้องเรียกใช้เพียงครั้งเดียวต่อแท็บแบบสอบถาม - การดำเนินการที่ตามมาทั้งหมดในแท็บนั้นดูเหมือนว่าจะใช้ฐานข้อมูลอย่างถูกต้อง
DACrosby

สวัสดีดังนั้นสำหรับ wordpress sql เราจะ "ใช้" ในไฟล์ SQL ได้อย่างไร คุณช่วยอธิบายอีกครั้งได้ไหม ฉันมีปัญหาตอนนี้
ราหุล S

21

หากคุณทำสิ่งนี้ผ่าน phpMyAdmin:

  • ฉันสมมติว่าคุณได้สร้างฐานข้อมูล MySQL ใหม่บนเว็บไซต์สดแล้ว (ตามไซต์สดฉันหมายถึง บริษัท ที่คุณโฮสต์ด้วย (ในกรณีของฉันคือ Bluehost))

  • ไปที่ phpMyAdmin บนเว็บไซต์สด - ล็อกอินเข้าสู่ฐานข้อมูลที่คุณเพิ่งสร้างขึ้น

  • ตอนนี้สำคัญ! ก่อนที่จะคลิกตัวเลือก "นำเข้า" ที่แถบด้านบนให้เลือกฐานข้อมูลทางด้านซ้ายของหน้า (แถบสีเทาด้านบนเขียนด้วย PHP Myadmin ด้านล่างมีสองตัวเลือก: information_schema และชื่อฐานข้อมูลที่คุณเพิ่งล็อกอิน

  • เมื่อคุณคลิกฐานข้อมูลที่คุณเพิ่งสร้าง / ล็อกอินมันจะแสดงฐานข้อมูลนั้นแล้วคลิกตัวเลือกการนำเข้า

นั่นเป็นเคล็ดลับสำหรับฉัน หวังว่าจะช่วยได้จริงๆ


คุณคิดว่าถ้าคุณไม่ได้อยู่ในฐานข้อมูลจะมีตัวเลือกในหน้าเพื่อให้คุณเลือก
Andy Mercer

15
  • แก้ไขSQLไฟล์ของคุณโดยใช้NotepadหรือNotepad ++
  • เพิ่ม 2 บรรทัดต่อไปนี้:

CREATE DATABASE NAME; USE NAME;


เราจะเขียนในกรณีสำหรับไฟล์ฐานข้อมูล wordpress ได้อย่างไรขณะพยายามนำเข้าโดยใช้ MySql Workbench แต่ไม่ได้เลือกฐานข้อมูล
Rahul S

8

หากนำเข้าฐานข้อมูลคุณจะต้องสร้างขึ้นก่อนด้วยชื่อเดียวกันจากนั้นเลือกจากนั้นจึงนำเข้าฐานข้อมูลที่มีอยู่

หวังว่ามันจะเหมาะกับคุณ!


โปรดเพิ่มรายละเอียดในคำตอบเพื่ออธิบายขั้นตอนของคุณ
Starx

7

สำหรับ MySQL Workbench

  1. เลือกฐานข้อมูลจากแท็บ Schemas ด้วยการคลิกเมาส์ขวา
  2. ตั้งฐานข้อมูลเป็น Schema เริ่มต้น

ป้อนคำอธิบายรูปภาพที่นี่


2

quoting ivan n: "ถ้านำเข้าฐานข้อมูลคุณต้องสร้างชื่อแรกด้วยชื่อเดียวกันจากนั้นเลือกจากนั้นนำเข้าฐานข้อมูลที่มีอยู่ไปที่ฐานข้อมูลหวังว่ามันจะทำงานให้คุณ!"

เหล่านี้คือขั้นตอน: สร้างฐานข้อมูลเช่น my_db1, utf8_general_ci จากนั้นคลิกเพื่อเข้าไปในฐานข้อมูลนี้ จากนั้นคลิก "นำเข้า" และเลือกฐานข้อมูล: my_db1.sql

นั่นควรจะเป็นทั้งหมด


นี่ควรเป็นความคิดเห็นภายใต้คำตอบของอีวานเพื่อให้เขาสามารถเปลี่ยนคำตอบเพื่อรวมขั้นตอนของคุณ
Navigatron

1

ฐานข้อมูลเลือกแรก: USE db_name

จากนั้นสร้างตาราง: สร้างตาราง tb_name (id int, ชื่อ varchar (255), int เงินเดือน, เมือง 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

ฉันมาสายฉันคิดว่า:] งั้น ๆ

หากคุณอยู่ที่นี่ฉันกำลังค้นหาวิธีแก้ปัญหาเมื่อเกิดข้อผิดพลาดนี้mysqldumpแทนที่จะเป็น mysql ลองใช้วิธีแก้ปัญหาที่ฉันพบในเว็บไซต์เยอรมันโดยบังเอิญดังนั้นฉันจึงอยากแบ่งปันกับคนจรจัดที่มีอาการปวดหัวเหมือนฉัน

ดังนั้นปัญหาเกิดขึ้นเนื่องจาก-databasesพารามิเตอร์ขาดก่อนชื่อฐานข้อมูล

ดังนั้นคำสั่งของคุณจะต้องมีลักษณะเช่นนี้:

mysqldump -pdbpass -udbuser --databases dbname

อีกสาเหตุของปัญหาในกรณีของฉันคือฉัน developping บนเครื่องและ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 ใหม่ (ถ้าคุณ R โดยใช้ phpMyAdmin MySQL ในขณะนี้ด้านบน it'l เป็นเหมือน 'เซิร์ฟเวอร์:. . . . * >> ฐานข้อมูล) ตอนนี้ไปที่แท็บนำเข้าเลือก file.Import !

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.