错误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 2014年

我发生的事情是:创建一个架构,填写数据库名称,然后显示“失败,未选择数据库”。重新打开工作台,我看到我刚创建失败的数据库。然后,选择刚刚创建的数据库,并打开一个.sql文件并运行,同时创建数据库和使用数据库语句,它再次抱怨“未选择任何数据库失败”。重新打开工作台,所有表都已构建。MAC系统,工作台6.3.3
Tiina,2013年

Answers:


408

您需要告诉MySQL要使用哪个数据库:

USE database_name;

在创建表之前。

如果数据库不存在,则需要按以下方式创建它:

CREATE DATABASE database_name;

其次是:

USE database_name;

8
就我而言,我曾使用mysqldump导出数据库,并且在导入时就遇到了这个问题。我只需要编辑导出的sql文件,即可将这两个命令添加到其顶部。
2012年

谢谢!这就是我所需要的。我有一个用于创建数据库和表的脚本,但是由于需要插入USE tablename命令而无法创建表。
ckpepper02 '04

1
写入:CREATE DATABASE IF NOT EXISTS database_name ; USE database_name;无论是否已创建数据库,此方法均有效。
斯蒂安


36

当我尝试导入以前创建的数据库时,我遇到了同样的错误。这是我为解决此问题所做的工作:

1-创建新数据库

2-通过use命令使用

在此处输入图片说明

3-再试一次

这对我有用。


28

如果您尝试通过命令行执行此操作...

如果尝试从命令行界面运行CREATE TABLE语句,则需要在执行查询之前指定要使用的数据库:

USE your_database;

是文档

如果您尝试通过MySQL Workbench进行此操作...

...您需要在:Object Browser:选项卡上方的下拉菜单中选择适当的数据库/目录。您可以为连接指定默认的架构/数据库/目录-单击“工作台”初始屏幕的“ SQL开发”标题下的“管理连接”选项。

附录

所有这些都假定您要在其中创建表的数据库-如果没有,则需要先创建数据库:

CREATE DATABASE your_database;

使用MySQL Workbench:您能提供一张带有下拉菜单位置的图像吗?
AdrianRM

我想这可能是指旧版本的MySQL Workbench。我只是获取了最新版本,但在任何地方都看不到“对象浏览器”选项卡。
Tim Keating 2012年

USE database;如果您遇到此错误,即使在MySQL Workbench(我在v5.2.47中)中,您似乎也需要使用该命令。每个查询选项卡只需要运行一次-该选项卡上的所有后续执行似乎都能正确使用数据库。
DACrosby

嗨,因此对于wordpress sql,我们如何在SQL文件中“使用”。您能再说一遍吗?我现在有问题。
Rahul S

21

如果通过phpMyAdmin执行此操作:

  • 我假设您已经在实时站点上创建了一个新的MySQL数据库(实时站点是指您托管的公司(在我的情况下是Bluehost))。

  • 在实时站点上转到phpMyAdmin-登录到刚创建的数据库。

  • 现在重要!在单击顶部栏上的“导入”选项之前,请在页面左侧选择数据库(灰色栏,顶部写有PHP Myadmin,在其下方有两个选项:information_schema和刚登录的数据库名称。

  • 单击刚创建/登录的数据库后,它将向您显示该数据库,然后单击导入选项。

那对我有用。真的希望能有所帮助


您可能会认为,如果您尚未进入数据库,则页面上会有一个选项允许您选择一个。
安迪·默瑟

15
  • SQL使用记事本记事本++编辑文件
  • 添加以下两行:

CREATE DATABASE NAME; USE NAME;


我们该如何在尝试使用MySql Workbench导入但未选择数据库的情况下为wordpress数据库文件编写脚本
Rahul S

8

如果要导入数据库,则需要先创建一个具有相同名称的数据库,然后选择它,然后将现有数据库导入其中。

希望这对你有用!


请在您的答案中添加一些详细信息,以说明您的步骤。
Starx 2012年


2

引用ivan n:“如果要导入数据库,则需要先创建一个具有相同名称的数据库,然后选择它,然后将现有数据库导入到其中。希望它对您有用!”

这些步骤是:创建一个数据库,例如my_db1,utf8_general_ci。然后单击以进入该数据库。然后单击“导入”,然后选择数据库:my_db1.sql

那应该是全部。


这应该是在Ivan的答案下方的注释,以便他可以更改答案以包括您的步骤。
Navigatron

1

首先选择数据库:USE db_name

然后创建表:CREATE TABLE tb_name(id int,name varchar(255),Salary 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

为了增加安全性,在同一脚本中使用多个DB时,可以在查询中指定该DB,例如“创建表my_awesome_db.really_cool_table ...”。


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/


-1

JST在mysql.Select创建一个新的数据库新的DB(如果[R用mysql的phpmyadmin现在在顶部it'l像“服务器:。 。。* >>数据库)。现在去进口选项卡中选择file.Import !

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.