MySQL导入SQL提示成功却报#1046错误,求解决方法
解决MySQL导入SQL文件时出现#1046 - No database selected的问题
这个错误的根源很明确:你的SQL脚本只在注释里提到要使用inv-barang2数据库,但没有实际执行切换数据库的语句,导致MySQL不知道要把表建到哪个库里。下面给你两种实用的解决方法:
方法一:直接修改SQL文件
打开inv-barang2.sql文件,在最开头添加两行SQL语句:
CREATE DATABASE IF NOT EXISTS `inv-barang2`; USE `inv-barang2`;
这样脚本会先自动创建目标数据库(如果它还不存在),然后切换到该数据库,之后所有的建表、插入数据操作都会在正确的库里执行,不会再出现#1046错误。
方法二:导入前手动指定数据库
如果不想改动原SQL文件,可以在导入前先完成数据库的创建和切换:
- 打开MySQL命令行,用你的账号登录:
输入密码进入控制台。mysql -u your_username -p - 创建目标数据库(如果还没创建):
CREATE DATABASE IF NOT EXISTS `inv-barang2`; - 切换到这个数据库:
USE `inv-barang2`; - 执行导入命令,把
/path/to/换成你的SQL文件实际存放路径:
如果你用的是phpMyAdmin这类可视化工具,只要在导入前先选中source /path/to/inv-barang2.sql;inv-barang2数据库再执行导入即可。
至于系统提示“导入成功”,是因为脚本里部分语句可能在默认数据库(比如mysql库)里执行成功了,但核心的建表语句因为没选库失败了,所以会同时出现成功提示和报错。
内容的提问来源于stack exchange,提问作者aldo ls
相关产品推荐
相关产品推荐

