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

这里需要帮助。


当前回答

假设你正在使用命令行:

1. 找到数据库

显示数据库;

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

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

为什么会出现这个错误?

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

其他回答

假设你正在使用命令行:

1. 找到数据库

显示数据库;

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

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

为什么会出现这个错误?

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

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

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

希望它对你有用!

我想我迟到了抱歉

如果你在这里和我一样,当这个错误发生在mysqldump而不是mysql时,尝试这个解决方案,我在一个德国网站上偶然发现的,所以我想和像我一样头疼的无家可归的人分享。

因此,问题的发生是因为在数据库名称之前缺少-databases参数

所以你的命令必须是这样的:

mysqldump -pdbpass -udbuser --databases dbname

在我的情况下,问题的另一个原因是,我在本地开发和根用户没有密码,所以在这种情况下,你必须使用——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/

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

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

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