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

pqwbnv8z  于 2021-08-13  发布在  Java
关注(0)|答案(18)|浏览(902)

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

这里需要帮助。

vcirk6k6

vcirk6k61#

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

USE database_name;

在创建表之前。
如果数据库不存在,则需要将其创建为:

CREATE DATABASE database_name;

然后:

USE database_name;
ijxebb2r

ijxebb2r2#

您还可以告诉mysql使用什么数据库(如果已经创建了):

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

4nkexdtk3#

当我试图导入以前创建的数据库时,遇到了相同的错误。以下是我为解决此问题所做的操作:
1-创建新数据库
2-使用它 use 命令

3-再试一次
这对我有用。

xuo3flqw

xuo3flqw4#

如果您试图通过命令行执行此操作。。。

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

USE your_database;

这是文件。

如果你想通过mysql工作台来实现这一点。。。

…您需要在:对象浏览器:选项卡上方的下拉菜单中选择适当的数据库/目录。您可以指定连接的默认模式/数据库/目录-单击workbench初始屏幕的sql development标题下的“manage connections”选项。

附录

这一切都假设有一个数据库要在其中创建表-如果没有,则需要先创建数据库,然后再执行其他操作:

CREATE DATABASE your_database;
dddzy1tm

dddzy1tm5#

如果您是通过phpmyadmin执行此操作:
我假设你已经在livesite上创建了一个新的mysql数据库(livesite是指你所在的公司(在我的例子中是bluehost))。
转到phpmyadmin on live site-登录到您刚刚创建的数据库。
现在很重要!在单击顶部栏上的“导入”选项之前,请在页面左侧选择您的数据库(灰色栏,顶部写有php myadmin,下面写有两个)options:information_schema 以及您刚刚登录的数据库的名称。
单击刚刚创建/登录的数据库后,它将显示该数据库,然后单击导入选项。
这对我来说是个好办法。真的希望能有帮助

kxkpmulp

kxkpmulp6#

编辑您的 SQL 文件使用记事本或记事本++
添加以下2行: CREATE DATABASE NAME; USE NAME;

bttbmeg0

bttbmeg07#

mysql工作台
通过鼠标右键单击从“架构”选项卡中选择“数据库”。
将数据库设置为默认架构

pdtvr36n

pdtvr36n8#

如果要导入数据库,需要先创建一个同名数据库,然后选择它,然后将现有数据库导入其中。
希望对你有用!

3htmauhk

3htmauhk9#

假设您正在使用命令行:

1. 查找数据库 show databases;

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

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

为什么会发生这种错误?

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

uemypmqf

uemypmqf10#

要小心空白密码

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

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

kmbjn2e3

kmbjn2e311#

引用ivan n的话:“如果导入一个数据库,你需要先用相同的名称创建一个,然后选择它,然后将现有的数据库导入其中。希望对你有用!”
以下是步骤:创建一个数据库,例如my\u db1、utf8\u general\u ci。然后单击进入此数据库。然后单击“导入”,并选择数据库:my\u db1.sql
就这些了。

vulvrdjw

vulvrdjw12#

首先选择数据库:使用数据库名称
然后创造table:create table tbu name(id int,name varchar(255),salary int,city varchar(255));
这是MySQL5.5版本的语法

ltskdhd1

ltskdhd113#

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

ar5n3qh5

ar5n3qh514#

检查是否已首先创建所需的数据库。
如果尚未创建数据库,则必须启动此查询:

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

voase2hg15#

虽然这是一条很古老的线索,但我发现了一些东西。我创建了一个新数据库,然后添加了一个用户,最后使用phpmyadmin上传.sql文件。完全失败。系统无法识别我的目标数据库。。。
当我在不附加新用户的情况下重新开始,然后执行相同的phpmyadmin导入时,效果很好。

相关问题