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

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

这里需要帮助。

1076933 次浏览

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

USE database_name;

在创建表之前。

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

CREATE DATABASE database_name;

紧随其后的是:

USE database_name;

如果您试图通过命令行完成此操作…

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

USE your_database;

这是的文档

如果你试图通过MySQL Workbench来做这件事…

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

齿顶高

这一切都假设有一个数据库,你想要在其中创建表-如果不是,你需要在其他任何事情之前创建数据库:

CREATE DATABASE your_database;

如果导入数据库,则需要先创建同名的数据库,然后选择该数据库,然后将现有数据库导入其中。

希望它对你有用!

引用Ivan n: 如果导入数据库,需要先创建一个同名的数据库,然后选择它,然后将现有的数据库导入到它。 希望它对你有用!" < / p > 以下是步骤: 创建一个数据库,例如my_db1, utf8_general_ci。 然后单击进入该数据库。 然后点击“导入”,选择数据库:my_db1.sql

应该就这些了。

虽然这是一个相当老的帖子,但我刚刚发现了一些东西。我创建了一个新数据库,然后添加了一个用户,最后使用phpMyAdmin上传.sql文件。总失败。系统无法识别我所瞄准的DB…

当我开始新的没有首先附加一个新用户,然后执行相同的phpMyAdmin导入,它工作正常。

  • 使用记事本notepad++编辑你的SQL文件
  • 增加如下2行:

CREATE DATABASE NAME; 使用名称;< /代码> < / p >

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

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

如果你通过phpMyAdmin这样做:

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

  • 去现场phpMyAdmin -登录到您刚刚创建的数据库。

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

  • 一旦你点击你刚刚创建/登录的数据库,它会显示你的数据库,然后点击导入选项。

这招对我很管用。希望能有所帮助

只是想补充:如果你在一个活跃的网站上创建一个mySQL数据库,然后进入PHPMyAdmin和数据库不显示-注销cPanel,然后登录回来,打开PHPMyAdmin,它现在应该在那里。

首先选择数据库:使用db_name

然后创建表:CREATE table tb_name ( id int, 名字varchar (255), 工资int, 城市varchar (255) < / p >);

这是mysql 5.5版本语法

在mysql中新建一个数据库。选择新的DB。(如果你现在使用mysql phpmyadmin在顶部,它会像'Server:< em >。.。* >>数据库)。现在进入导入选项卡选择文件。导入!

当我试图导入以前创建的数据库时,我遇到了同样的错误。以下是我解决这个问题的方法:

创建新的数据库

2-使用use命令

enter image description here

3-再试一次

这对我很有用。

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

我想我迟到了抱歉

如果你在这里和我一样,当这个错误发生在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/

MySQL Workbench

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

enter image description here

注意使用空密码

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

解决了问题(不再需要引号)。

假设你正在使用命令行:

1. 找到数据库

show databases;

Example of a database list .

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

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

为什么会出现这个错误?

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

检查您是否已经首先创建了您想要的数据库。

如果你还没有创建数据库,你必须触发这个查询:

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)
);

在Amazon RDS中,如果数据库名称中包含破折号,则仅编写use my-favorite-database是无效的。此外,以下工作也均未完成:

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

只需点击“更改数据库”;按钮,选择所需的数据库和voilà。

举例解决方案

  • 错误1046发生时,我们错过连接我们的表与数据库。在本例中,我们没有任何数据库,这就是为什么首先我们将创建一个新数据库,然后将指示将该数据库用于创建的表。
# At first you have to create Database
CREATE DATABASE student_sql;


# Next, specify the database to use
USE student_sql;


# Demo: create a table
CREATE TABLE student_table(
student_id INT PRIMARY KEY,
name VARCHAR(20),
major VARCHAR(20)
);


# Describe the table
describe student_table;