371

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

在这里需要一些帮助。

4

19 回答 19

503

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

USE database_name;

在创建表之前。

如果数据库不存在,您需要将其创建为:

CREATE DATABASE database_name;

其次是:

USE database_name;
于 2010-10-23T18:21:50.697 回答
56

您还可以告诉 MySQL 使用哪个数据库(如果您已经创建了它):

 mysql -u example_user -p --database=example < ./example.sql
于 2014-02-17T19:21:55.363 回答
41

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

1-创建新数据库

2-通过use命令使用它

在此处输入图像描述

3-再试一次

这对我有用。

于 2015-12-06T08:26:01.683 回答
29

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

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

USE your_database;

这是文档

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

...您需要在 :Object Browser: 选项卡上方的下拉菜单中选择适当的数据库/目录。您可以为连接指定默认模式/数据库/目录 - 单击 Workbench 初始屏幕的 SQL Development 标题下的“Manage Connections”选项。

附录

这一切都假设有一个您想要在其中创建表的数据库 - 如果没有,您需要先创建数据库:

CREATE DATABASE your_database;
于 2010-10-23T18:24:54.593 回答
23

如果您通过 phpMyAdmin 执行此操作:

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

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

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

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

这对我有用。真的希望有帮助

于 2014-03-18T01:25:39.173 回答
16

对于 MySQL 工作台

  1. 通过鼠标右键单击从 Schemas 选项卡中选择数据库。
  2. 将数据库设置为默认架构

在此处输入图像描述

于 2018-12-06T14:12:41.287 回答
15
  • 使用记事本记事本++编辑SQL文件
  • 添加以下 2 行:

CREATE DATABASE NAME; USE NAME;

于 2013-10-11T20:48:39.373 回答
10

假设您使用的是命令行:

1.查找数据库

show databases;

数据库列表示例

2. 从列表中选择一个数据库

例如USE classicmodels;,你应该去参加比赛!(显然,您必须在列表中使用正确命名的数据库。

为什么会出现这个错误?

Mysql 要求您选择您正在处理的特定数据库。我认为这是他们做出的一个设计决定:它避免了很多潜在的问题:例如,您完全有可能在多个数据库(例如一个users表)中使用相同的表名。为了避免这些类型的问题,他们可能会想:“让用户选择他们想要的数据库”。

于 2020-12-12T23:44:57.540 回答
9

如果导入数据库,您需要先创建一个同名的数据库,然后选择它,然后将现有数据库导入到它。

希望这对你有用!

于 2011-10-25T16:38:18.903 回答
4

注意空白密码

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

解决了问题(不再需要报价)。

于 2019-07-22T19:37:18.557 回答
4

检查您是否首先创建了所需的数据库。

如果您尚未创建数据库,则必须触发此查询:

CREATE DATABASE data_base_name

如果您已经创建了数据库,那么您可以简单地触发此查询,您将能够在您的数据库上创建表:

CREATE TABLE `data_base_name`.`table_name` (
 _id int not null,
 LastName varchar(255) NOT NULL,
 FirstName varchar(255),
 Age int,
 PRIMARY KEY (_id)
);
于 2021-04-07T06:22:43.593 回答
2

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

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

这应该就是全部了。

于 2013-04-18T12:25:14.720 回答
1

首先选择数据库:USE db_name

然后创建表:CREATE TABLE tb_name(id int,name varchar(255),salary int,city varchar(255));

这适用于 mysql 5.5 版本的语法

于 2015-07-04T12:46:03.707 回答
1

我迟到了,我想:] 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/

于 2018-09-23T02:52:12.217 回答
0

虽然这是一个相当古老的线程,但我刚刚发现了一些东西。我新建了一个数据库,然后添加了一个用户,最后去使用phpMyAdmin上传.sql文件。彻底失败。系统无法识别我的目标是哪个数据库...

当我在没有先附加新用户的情况下重新开始,然后执行相同的 phpMyAdmin 导入时,它工作正常。

于 2013-09-27T10:15:49.420 回答
0

只是想补充一下:如果您在实时站点上的 mySQL 中创建数据库,然后进入 PHPMyAdmin 并且数据库没有显示 - 注销 cPanel 然后重新登录,打开 PHPMyAdmin,它现在应该在那里。

于 2014-08-04T23:42:11.663 回答
0

在 Amazon RDS 中,use my-favorite-database如果该数据库的名称包含破折号,则仅写入是行不通的。此外,以下任何一项都不起作用:

use "my-favorite-database"
use `my-favorite-database`
use 'my-favorite-database'

只需单击“更改数据库”按钮,然后瞧。

于 2021-09-08T18:21:41.563 回答
0

为了增加安全性,当在同一个脚本中处理多个 DB 时,您可以在查询中指定 DB,例如“create table my_awesome_db.really_cool_table...”。

于 2016-07-17T15:36:46.933 回答
-1

jst在mysql中创建一个新数据库。选择那个新数据库。(如果你现在在顶部使用mysql phpmyadmin,它就像'服务器:...... * >>数据库) 。现在去导入选项卡选择文件。导入!

于 2015-10-19T05:34:13.663 回答