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

时间:2010-10-23 18:19:23

标签: sql mysql 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;
MySQL说:

#1046 - No database selected

需要一些帮助。

18 个答案:

答案 0 :(得分:359)

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

USE database_name;
在创建表格之前

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

CREATE DATABASE database_name;

接下来是:

USE database_name;

答案 1 :(得分:43)

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

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

答案 2 :(得分:29)

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

1-创建新数据库

2-按use命令

使用它

enter image description here

3-再试一次

这适合我。

答案 3 :(得分:27)

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

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

USE your_database;

这是the documentation

如果您是通过MySQL Workbench尝试这样做的话......

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

附录

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

CREATE DATABASE your_database;

答案 4 :(得分:18)

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

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

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

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

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

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

答案 5 :(得分:12)

  • 使用记事本 Notepad ++
  • 修改您的SQL文件
  • 添加以下2行:

CREATE DATABASE NAME; USE NAME;

答案 6 :(得分:8)

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

希望它适合你!

答案 7 :(得分:2)

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

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

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

答案 8 :(得分:2)

引用伊万: “如果要导入数据库,则需要先创建一个具有相同名称的数据库,然后选择它,然后将现有数据库导入到该数据库中。 希望它适合你!“

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

应该是全部。

答案 9 :(得分:1)

首先选择数据库:USE db_name

然后创建表:CREATE TABLE tb_name (    id int,  name varchar(255),  工资int,   城市varchar(255) );

这适用于mysql 5.5版本语法

答案 10 :(得分:1)

对于MySQL Workbench

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

enter image description here

答案 11 :(得分:0)

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

答案 12 :(得分:0)

虽然这是一个非常古老的主题,但我发现了一些东西。我创建了一个新的数据库,然后添加了一个用户,最后又使用phpMyAdmin上传了.sql文件。完全失败。系统无法识别我的目标是哪个...

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

答案 13 :(得分:0)

对于增加的安全元素,在同一脚本中使用多个DB时,您可以在查询中指定数据库,例如: “create table my_awesome_db.really_cool_table ...”。

答案 14 :(得分:0)

我想我来晚了:]很抱歉,

如果您像我一样在此处使用import React, {Component} from 'react'; import './EventContainer.css'; import Modal from '@material-ui/core/Modal'; import Map from '../Map/Map'; class eventContainer extends Component { constructor(){ super(); this.showEvent = this.showEventHandler.bind(this); this.closePreviewHandler = this.closePreviewHandler.bind(this); this.state = { modalIsOpen: false, open: false }; } showEventHandler = () => { this.setState ({ open: true, modalIsOpen: !this.state.modalIsOpen }); } closePreviewHandler = () => { this.setState ({ open: false }); } render(){ return ( <div className="event-container" onClose={this.showEventHandler}> <img className="event-container__image" src={this.props.img} alt="default"/> <div className="event-container__date"> <time className="time-container">{this.props.date}</time> <time className="time-container">{this.props.time}</time> </div> <h2 className="event-container__title">{this.props.title}</h2> <div className="event-container__meta"> <p>{this.props.host}</p> <strong>{this.props.localization}</strong> </div> <span className="event-container__category"> {this.props.category}</span> <Modal aria-labelledby="simple-modal-title" aria-describedby="simple-modal-description" open={this.state.open} onClose={this.closePreviewHandler} onBackdropClick={this.closePreviewHandler} > <div className="event-preview"> <h2 className="event-preview__title">{this.props.title}</h2> <img src={this.props.img} alt=""/> <div className="event-container__date"> <time className="time-container">{this.props.date}</time> <time className="time-container">{this.props.time}</time> </div> <div className="event-container__meta"> <p className="event-container__host">{this.props.host}</p> <strong className="event-container__localization">{this.props.localization}</strong> </div> <p className="event-description">{this.props.description}</p> <Map/> <button className="event-preview__close" onClick={this.closePreviewHandler}>close</button> </div> </Modal> </div> ); } } export default eventContainer; 而不是mysql发生此错误时寻找解决方案,请尝试我偶然在德国网站上找到的解决方案,因此我想与无家可归的人分享像我一样头痛的人。

之所以会出现此问题,是因为数据库名称之前缺少mysqldump参数

因此您的命令必须如下所示:

-databases

问题的另一个原因是,我在本地开发,并且mysqldump -pdbpass -udbuser --databases dbname 用户没有密码,因此在这种情况下,您必须使用root而不是{{ 1}},所以我的最终命令是:

--password=

链接到完整的线程(德语):https://marius.bloggt-in-braunschweig.de/2016/04/29/solution-mysqldump-no-database-selected-when-selecting-the-database/

答案 15 :(得分:0)

请注意空白密码

key == "Name"

将要求输入密码并向pd.DataFrame.from_records投诉

问题是import pandas as pd dict_list = ['{name: Charlie person}', '{Telephone Number: 454895656}', '{Country:}', '{Email Address: charlie@email.com}', '{Name: Karen}', '{Telephone Number: 1515451645}', '{Email Address: karen@aol.com}', '{Name: Sally Lastname}', '{Telephone Number: 151451465456}', '{Country: USA}', '{Email Address: SallyLastname@GMAIL.COM}', '{Best time to Call: DAYTIME}'] records = [] for d_str in dict_list: key, value = map(str.strip,d_str.strip('{}').split(":", maxsplit=1)) key = key.title() if key=="Name": records.append({}) records[-1][key]=value df = pd.DataFrame.from_records(records) print(df) 选项要求mysqldump [options] -p '' --databases database_name 和密码之间没有空格。

mysqldump: Got error: 1046: "No database selected" when selecting the database

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

答案 16 :(得分:0)

假设您正在使用命令行:

1。查找数据库

show databases;

Example of a database list

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

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

为什么会发生此错误?

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

答案 17 :(得分:-1)

jst在mysql中创建一个新数据库。选择新的数据库。(如果你现在使用mysql phpmyadmin,它就像&#39;服务器: 。*&gt;&gt;数据库)。现在去导入选项卡选择文件。导入!