Sql 错误1046未选择数据库,如何解决?
错误 SQL查询:Sql 错误1046未选择数据库,如何解决?,sql,mysql,mysql-error-1046,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(
--
-- 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
这里需要一些帮助。您需要告诉MySQL使用哪个数据库:
USE database_name;
在创建表之前
如果数据库不存在,则需要将其创建为:
CREATE DATABASE database_name;
其次是:
USE database_name;
如果您试图通过命令行执行此操作。。。
如果试图从命令行界面运行CREATE TABLE语句,则需要在执行查询之前指定正在使用的数据库:
USE your_database;
给你
如果您试图通过MySQL Workbench实现这一点。。。
…您需要在:对象浏览器:选项卡上方的下拉菜单中选择适当的数据库/目录。您可以为连接指定默认模式/数据库/目录-单击工作台初始屏幕SQL Development标题下的“管理连接”选项
补遗
这一切都假设有一个数据库要在其中创建表-如果没有,则需要先创建数据库,然后再执行其他操作:
CREATE DATABASE your_database;
如果要导入数据库,需要先创建一个同名数据库,然后选择该数据库,然后将现有数据库导入其中 希望它对你有用 引用伊万n的话: “如果导入数据库,您需要先创建一个同名数据库,然后选择该数据库,然后将现有数据库导入该数据库。 希望它对你有用!” 以下是步骤: 创建一个数据库,例如my_db1、utf8\u general\u ci。 然后单击进入该数据库。 然后单击“导入”,并选择数据库:my_db1.sql
应该就这些了。虽然这是一条非常古老的线索,但我刚刚发现了一些东西。我创建了一个新数据库,然后添加了一个用户,最后使用phpMyAdmin上传.sql文件。完全失败。系统无法识别我的目标数据库 当我在没有附加新用户的情况下开始fresh,然后执行相同的phpMyAdmin导入时,效果很好
- 使用Notepad或Notepad++编辑您的
文件SQL
- 添加以下两行:
创建数据库名称;
使用名称代码>您还可以告诉MySQL使用什么数据库(如果您已经创建了该数据库):
mysql-u example\u user-p--database=example<./example.sql
如果您通过phpMyAdmin执行此操作:
- 我假设您已经在Live Site上创建了一个新的MySQL数据库(Live Site是指托管您的公司(在我的例子中是Bluehost))
- 转到实时站点上的phpMyAdmin-登录到您刚刚创建的数据库
- 现在很重要!在单击顶部栏上的“导入”选项之前,请在页面左侧选择您的数据库(灰色栏,顶部写有PHP Myadmin,下面写有两个选项:信息模式和您刚刚登录的数据库名称)
- 单击刚刚创建/登录的数据库后,它将显示该数据库,然后单击导入选项
这对我来说真的很有帮助。真的希望这对我有帮助。我想补充一点:如果你在一个实时站点上用mySQL创建了一个数据库,那么进入PHPMyAdmin,数据库就不会显示了-注销cPanel,然后重新登录,打开PHPMyAdmin,它现在应该就在那里。首先选择数据库:使用db\u name
然后创建表:创建表tb\U名称
(
id int,
名称varchar(255),
工资整数,
城市瓦查尔(255)
))
这适用于mysql 5.5版本语法jst在mysql中创建一个新数据库。选择该新数据库。(如果您现在在顶部使用mysql phpmyadmin,它将类似于服务器:.*>>数据库)。现在转到导入选项卡选择文件。导入!我在尝试导入以前创建的数据库时遇到了相同的错误。以下是我为解决此问题所做的操作:
1-创建新数据库
2-通过Use
命令使用它
3-再试一次
这对我很有用。为了增加安全性,在同一脚本中使用多个数据库时,可以在查询中指定数据库,例如“创建表my_awesome_DB.really_cool_table…”。我迟到了,我想:]soory
如果你和我一样,在使用mysqldump
而不是mysql出现此错误时在这里搜索解决方案,请尝试我在德国网站上偶然发现的此解决方案,因此我想与像我一样头痛的无家可归者分享
因此,出现问题的原因是数据库名称之前缺少-databases
参数
因此,您的命令必须如下所示:
mysqldump -pdbpass -udbuser --databases dbname
本例中出现问题的另一个原因是,我正在本地开发,根用户
没有密码,因此在本例中,您必须使用--password=
而不是-pdbpass
,因此我的最后一个命令是:
mysqldump -udbuser --password= --databases dbname
链接到完整的线程(德语):For MySQL Workbench
通过鼠标右键单击从“架构”选项卡中选择“数据库”
将数据库设置为默认架构
注意空白密码
mysqldump [options] -p '' --databases database_name
当选择数据库时,将要求输入密码并抱怨mysqldump:Got error:1046:“未选择数据库”
问题是-p
选项要求-p
和密码之间没有空格
mysqldump [options] -p'' --databases database_name
已解决问题(不再需要引号)。假设您使用的是命令行:
1.查找数据库
显示数据库;
2.从列表中选择一个数据库
e、 g.使用classicmodels;
你应该去参加比赛!(显然,你必须使用列表中正确命名的数据库
为什么会发生这种错误?
Mysql要求您选择正在处理的特定数据库。我认为这是他们做出的设计决策:它避免了许多潜在问题:例如,您完全有可能在多个数据库中使用相同的表名
mysqldump [options] -p'' --databases database_name
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)
);