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

oxalkeyp  于 2021-06-25  发布在  Mysql
关注(0)|答案(17)|浏览(563)

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

这里需要帮助。

5sxhfpxr

5sxhfpxr1#

假设您正在使用命令行:

1. 查找数据库 show databases;

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

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

为什么会发生这种错误?

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

50pmv0ei

50pmv0ei2#

要小心空白密码

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

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

whlutmcx

whlutmcx3#

只想补充一点:如果你在一个实时站点上用mysql创建了一个数据库,那么进入phpmyadmin,数据库就不会显示了——注销cpanel,然后重新登录,打开phpmyadmin,它现在应该就在那里了。

wj8zmpe1

wj8zmpe14#

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

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

piok6c0g5#

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

mlnl4t2r

mlnl4t2r6#

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

USE database_name;

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

CREATE DATABASE database_name;

然后:

USE database_name;
jjhzyzn0

jjhzyzn07#

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

yfwxisqw

yfwxisqw8#

为了增加安全性,在同一脚本中处理多个数据库时,可以在查询中指定数据库,例如“create table my\u awesome\u db.really\u cool\u table…”。

fcg9iug3

fcg9iug39#

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

cu6pst1q

cu6pst1q10#

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

lawou6xi

lawou6xi11#

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

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

hgtggwj0

hgtggwj012#

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

juzqafwq

juzqafwq13#

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

qkf9rpyu

qkf9rpyu14#

jst在mysql中创建一个新的数据库。选择这个新的数据库(如果你现在在上面使用mysql phpmyadmin,它会像server:...*>>数据库)。现在转到导入选项卡,选择file.import!

anhgbhbe

anhgbhbe15#

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

相关问题