mysql:SOURCE错误2?

时间:2013-02-04 09:46:29

标签: mysql

当我尝试为特定的.sql文件(即我之前从数据库创建并保存的'metropolises.sql')获取源代码时,会显示以下错误:

  

无法打开文件' metropolises.sql',错误:2

知道出了什么问题吗?

25 个答案:

答案 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环境中。为此,请按照以下步骤操作

  1. 首先,通过以下方法检查并复制MySQL docker的容器ID:

    sudo docker ps

  2. 使用以下命令将SQL转储文件复制到您的容器中:

    sudo docker cp /path/to/sql/file.sql MysqlDockerID:/

    如果要将文件复制到docker内部的任何其他目录/路径中,则将转储文件复制到docker根文件夹中。将“ MysqlDockerID:”后的“ /”替换为您想要的适当路径。

  3. 现在要与正在运行的容器中的MySQL交互,请运行以下命令:

    sudo docker exec -it MysqlDockerID bin/bash

  4. 现在通过以下方式使用终端连接到MySQL:

    mysql -u yourUserName -p

    现在将要求您输入密码。输入正确的密码以继续。

  5. 列出可用的数据库:

    show Databases;

    这将列出可用的数据库

  6. 假定要将转储导入到的数据库名称为“ MyDatabase”。切换到以下方式:

    use MyDatabase

  7. 现在您可以通过键入以下内容来导入文件:

    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)