错误1046没有数据库选中,如何解决?

ste*_*eph 269 mysql sql mysql-error-1046

错误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;
Run Code Online (Sandbox Code Playgroud)

MySQL说:

#1046 - No database selected
Run Code Online (Sandbox Code Playgroud)

这里需要一些帮助.

cod*_*ict 382

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

USE database_name;
Run Code Online (Sandbox Code Playgroud)

在创建表之前.

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

CREATE DATABASE database_name;
Run Code Online (Sandbox Code Playgroud)

其次是:

USE database_name;
Run Code Online (Sandbox Code Playgroud)

  • 在我的情况下,我使用mysqldump导出数据库,并在导入时运行.我只需要编辑导出的sql文件,将这两个命令添加到它的顶部. (8认同)
  • 写入: `CREATE DATABASE IF NOT EXISTS database_name ;` `USE database_name;` 无论数据库是否已创建,这都有效。 (4认同)

小智 45

你也可以告诉MySQL使用什么数据库(如果你已经创建了它):

 mysql -u example_user -p --database=example < ./example.sql
Run Code Online (Sandbox Code Playgroud)

  • 为什么不用`mysql示例-u example_user -p <./ example.sql`代替? (7认同)

Min*_*wzy 31

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

1-创建新数据库

2-按use命令使用它

在此输入图像描述

3-再试一次

这适合我.


OMG*_*ies 27

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

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

USE your_database;
Run Code Online (Sandbox Code Playgroud)

这是文档.

如果你试图通过MySQL Workbench这样做...

...您需要在:对象浏览器:选项卡上方的下拉菜单中选择适当的数据库/目录.您可以为连接指定默认架构/数据库/目录 - 单击Workbench初始屏幕的SQL Development标题下的"管理连接"选项.

附录

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

CREATE DATABASE your_database;
Run Code Online (Sandbox Code Playgroud)


小智 19

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

  • 我假设你已经在Live Site上创建了一个新的MySQL数据库(通过实时网站我的意思是你托管的公司(在我的案例中是Bluehost)).

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

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

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

这对我有用.真的希望有所帮助


小智 12

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

CREATE DATABASE NAME; USE NAME;


小智 8

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

希望这对你有用!


BKS*_*eon 7

假设您正在使用命令行:

1. 查找数据库

show databases;

数据库列表示例

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

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

为什么会发生此错误?

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


小智 5

对于MySQL Workbench

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

在此处输入图片说明