当我尝试为特定的.sql文件(即我之前从数据库创建并保存的'metropolises.sql'
)获取源代码时,会显示以下错误:
无法打开文件' metropolises.sql',错误:2
知道出了什么问题吗?
答案 0 :(得分:81)
假设您的意思是尝试使用the source
command来执行文本文件中的SQL语句,则给出的错误号似乎是从POSIX层传递的。
因此,使用this resource,我们可以推断出错误值2意味着“没有这样的文件或目录”。
简而言之,你错了路径。
尝试提供绝对路径,因为不清楚当前工作目录将在MySQL服务器的上下文中。您可能认为它是shell的工作目录,但我们不应该期望这是真的。
答案 1 :(得分:32)
只需使用文件的绝对路径,然后使用转发斜杠,而不是使用反斜杠。
示例:
带反斜杠:源码C:\ folder1 \ metropolises.sql
使用正斜杠:源C:/folder1/metropolises.sql
答案 2 :(得分:11)
相关问题我收到错误2运行源命令:即使文件名包含空格或文件路径,文件名也不能用引号括起来。
答案 3 :(得分:6)
如果您在DOCKER内使用MYSQL
请注意,如果您在docker内部运行MySQL,则必须首先将转储复制到MySQL docker环境中。为此,请按照以下步骤操作
首先,通过以下方法检查并复制MySQL docker的容器ID:
sudo docker ps
使用以下命令将SQL转储文件复制到您的容器中:
sudo docker cp /path/to/sql/file.sql MysqlDockerID:/
如果要将文件复制到docker内部的任何其他目录/路径中,则将转储文件复制到docker根文件夹中。将“ MysqlDockerID:”后的“ /”替换为您想要的适当路径。
现在要与正在运行的容器中的MySQL交互,请运行以下命令:
sudo docker exec -it MysqlDockerID bin/bash
现在通过以下方式使用终端连接到MySQL:
mysql -u yourUserName -p
现在将要求您输入密码。输入正确的密码以继续。
列出可用的数据库:
show Databases;
这将列出可用的数据库
假定要将转储导入到的数据库名称为“ MyDatabase”。切换到以下方式:
use MyDatabase
现在您可以通过键入以下内容来导入文件:
source file.sql
请记住,如果您已将文件复制到根文件夹中(使用第2步),则上述命令有效。如果已将其复制到任何其他路径,请确保使用相同的路径代替
答案 4 :(得分:4)
我首先到达文件
c:\windows>cd c:\akura\Db Scripts
c:\akura\Db Scripts>mysql -u root -p root
mysql>\. EXECUTER_NEW_USER.sql
here EXECUTER_NEW_USER.sql my file name
答案 5 :(得分:4)
它可能是您文件的文件路径。如果您不知道要使用的文件的确切位置,请尝试在Finder中查找文件,然后将文件拖到终端窗口
mysql> SOURCE dragfilePathHere
答案 6 :(得分:2)
我在Windows上遇到了同样的错误。 我解决了它(在cmd:mysql -u root之后):
mysql> SOURCE C:/users/xxx/xxxx/metropolises.sql;
确保键入正确的文件路径
答案 7 :(得分:2)
如果您正在使用vagrant,请确保该文件位于服务器上,然后使用该文件的路径。例如,如果文件存储在公共文件夹中,您将拥有
sql> source /var/www/public/xxx.sql
其中xxx是文件的名称
答案 8 :(得分:1)
我遇到了这个问题,事实证明,如果您使用wamp服务器运行mysql,则必须使用wamp64文件夹中的文件路径。因此,当绝对路径为:C:/wamp64/www/foldername/filename.sql
时
您必须使用的路径是:
www/foldername/filename.sql
答案 9 :(得分:1)
在我的Windows 8.1和mysql 5.7.9 MySQL社区服务器(GPL)上,
我不得不在文件路径后删除;
。
此操作失败:来源E:/jokoni/db/Banking/createTables.sql;
此工作:来源E:/jokoni/db/Banking/createTables.sql
(没有终止,正斜杠而不是路径中的反斜杠)
答案 10 :(得分:1)
我使用此查询在mysql命令行中出现此错误:
source `db.sql`;
我将上述内容更改为以下内容以使其正常工作:
source db.sql;
答案 11 :(得分:0)
如果您使用的是Debian 8(Jessie)Linux,请尝试cd
进入'metropolises.sql'
的目录。运行mysql
并执行SOURCE ./metropolises.sql;
基本上,尝试相对路径。我试过这个并且有效。
答案 12 :(得分:0)
如果您正在运行dockerized MySQL容器,例如来自此官方Docker Image注册表的容器:https://hub.docker.com/_/mysql/您可能也会遇到this issue。
答案 13 :(得分:0)
对我来说,这是因为该文件位于共享驱动器上,并且由于某种原因,它无法访问该路径。 我剪切了文件并将其放在我的本地驱动器上,没有空格的路径,它得到了解决。
答案 14 :(得分:0)
当我使用命令源时,我得到了相同的错误,并通过拖放它给出了sql文件路径。
然后我只需删除那些默认情况下使用拖放出现的单引号,文件扩展名前的空格并且它有效。
soln:
source / home / xyz / file .sql;(文件扩展名前的路径和空格)
答案 15 :(得分:0)
对于Mac用户,您可以将路径指定为
source /Users/YOUR_USER_NAME/Desktop/metropolises.sql;
*我假设您需要source
的文件在您的desktop
中,文件名是metropolises.sql
如果您输入
source metropolises.sql
然后该文件将显示在默认位置
/Users/YOUR_USER_NAME/metropolises.sql;
答案 16 :(得分:0)
对我来说,解决方案是Windows中的文件权限。只要将文件的完全控制权提供给所有用户,它就会起作用。导入后,将权限恢复到以前的状态。
答案 17 :(得分:0)
在Mac上,这是唯一适用于我的解决方案。
https://stackoverflow.com/a/45530305/5414448
1 - Download the .sql file and remember it's location.
2 - Open your mysql from command prompt or terminal.
3 - Create a database with the same name as that of the database present in the .sql file (create database your_database_name)
4 - Now exit out from the mysql command line client
5 - Now try and execute this command =>
mysql -u your_username -p your_database_name < your_sql_file_with_complete_location
example - mysql -u root -p trial < /home/abc/Desktop/trial.sql
here my .sql file is named trial and is present in the desktop, the database is also name trial
6 - You should now have your sql file imported to the corresponding mysql database.
答案 18 :(得分:0)
我在Mac上遇到问题,因为路径中的一个文件夹(目录)名称的名称中有空格。顺便说一句,空格用\来转义,但是mySQL无法理解
答案 19 :(得分:0)
解决方案-1)确保您位于应用程序的root
文件夹中。例如app / db / schema.sql。
解决方案-2)打开/显示窗口上的文件夹,并将&&
拖放到命令行中的键盘source
( space )文件源旁边。例如来源User / myMAC / app / db / schema.sql
答案 20 :(得分:0)
我在Xubuntu桌面上遇到了这个问题。我通过重命名所有文件和文件夹来解决此问题,因此文件路径中没有空间。
答案 21 :(得分:0)
传递完整路径不会出错,但是如果文件夹具有MySQL空格,它将无法识别.sql文件。 我在OS UNIX上具有MySQL 8.0.21。
答案 22 :(得分:0)
可能是您使用的文件名或路径可能不正确
在我的系统中,我在c:\
创建了文件abcd.sql并使用命令mysql> source c:\abcd.sql
然后我得到了结果
答案 23 :(得分:-1)
当我从MySQL控制台尝试时,我也收到了相同的消息。但是,当我打开命令提示符并执行相同的步骤时,它可以工作。
C:\Users\SubhenduD>cd ../
C:\Users>cd ../
C:\>cd \xampp\mysql\bin
C:\xampp\mysql\bin>mysql -u -root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 68
Server version: 5.6.16 MySQL Community Server (GPL)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use balticktravels;
mysql> source balticktravels.sql;
答案 24 :(得分:-2)
删除路径文件夹名称中的空格,它适用于我的mac路径。
(例如:将文件夹名称MySQL Server 5.1更改为MySQLServer5.1)