mysql:SOURCE错误2?

Clu*_*lla 67 mysql

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

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

知道出了什么问题吗?

Lig*_*ica 89

假设您的意思是尝试使用source命令从文本文件执行SQL语句,则给出的错误号似乎是从POSIX层传递的.

因此,使用此资源,我们可以推断出错误值2意味着"没有这样的文件或目录".

简而言之,你错了路.

尝试提供绝对路径,因为目前尚不清楚当前工作目录在MySQL服务器的上下文中是什么.您可能认为它是shell的工作目录,但我们应该期望这是真的并不明显.

  • 作为补充说明,请勿将完整路径放在引号中.`SOURCE"/ var/test.sql";`将失败,错误代码为2,而`SOURCE/var/test.sql`将起作用(假设test.sql存在于该位置). (7认同)
  • 为什么他们不只是抛出 **“没有这样的文件或目录”** 而不是一个神秘的错误代码号..??? (3认同)
  • 提供绝对路径。完整路径。包括目录。 (2认同)

cha*_*had 33

只需使用文件的绝对路径,然后使用斜杠代替使用反斜杠.

例:

反斜杠:源C:\ folder1中\ metropolises.sql
正斜杠:源C:/folder1/metropolises.sql

  • 不适合我。尽管修改为带有正斜杠的绝对路径,但仍显示相同的错误。有什么建议么? (2认同)

Had*_*Mir 13

如果您在 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),则上述命令有效。如果您已将其复制到任何其他路径,请确保使用相同的路径


小智 12

相关问题我收到错误2运行源命令:filename即使在名称或文件路径中包含空格,也不能使用引号.

  • 人们倾向于认为路径引号中的空格是必要的。多么头疼啊! (2认同)

小智 5

我首先到达文件

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
Run Code Online (Sandbox Code Playgroud)


小智 5

这可能是文件的文件路径。如果您不知道要使用的文件的确切位置,请尝试在Finder中查找文件,然后将文件拖到“终端”窗口中

mysql> SOURCE dragfilePathHere 
Run Code Online (Sandbox Code Playgroud)

  • 兄弟,你是救星!我的问题绝对不清楚,原来我的文件名为“file.sql.sql”,但它没有显示在 GUI 中,仅当我将其拖放到 cmd 上时才出现 (2认同)