【问题标题】:Import SQL file into mysql将SQL文件导入mysql
【发布时间】:2011-07-06 09:25:05
【问题描述】:

我有一个名为nitm 的数据库。我还没有在那里创建任何表格。但我有一个 SQL 文件,其中包含数据库的所有必要数据。该文件是nitm.sql,位于C:\ drive。该文件的大小约为 103 MB。我正在使用 wamp 服务器。

我在 MySQL 控制台中使用了以下语法来导入文件:

mysql>c:/nitm.sql;

但这没有用。

【问题讨论】:

标签: mysql sql database windows import


【解决方案1】:

从 mysql 控制台:

mysql> use DATABASE_NAME;

mysql> source path/to/file.sql;


如果您指的是相对路径,请确保路径前没有斜线......我花了一段时间才意识到这一点!哈哈

【讨论】:

  • 如果您要进行相对引用,则路径前不需要斜杠。如果你从根开始,你会,即/home/user/file.sql
  • 可惜没有办法添加收藏夹的答案:(
  • 在 Chrome 中它们被称为书签,您只需点击地址栏中的星号即可;)
  • @ArseniuszŁozicki 添加问题,您将能够得到答案:) 这就是我所做的。
  • 只是为了补充这个答案,path/to/file.sql 是 mysql client 所在的本地文件系统路径。有时 MySQL 服务器希望路径位于服务器端,即 I.E. SELECT ... INTO OUTFILE 将文件放入 MySQL 服务器的路径中!
【解决方案2】:

最后,我解决了这个问题。我将 `nitm.sql` 文件放在 `mysql` 文件夹的 `bin` 文件中,并使用了以下语法。

C:\wamp\bin\mysql\mysql5.0.51b\bin>mysql -u root nitm < nitm.sql

这奏效了。

【讨论】:

  • 这不是像OP要求的那样来自mysql控制台,而是从控制台进入mysql。 Robert Anthony Tribiana 的回答确实描述了如何从 mysql 控制台进行操作。
  • 这不是解决问题的确切方法,也不是解决方案。
  • 你们知道这是回答这个问题的OP吗?
  • 如果你的mysql需要密码,那是方法不行,你需要@d-_-b的最佳答案
【解决方案3】:

如果你使用 wamp,你可以试试这个。只需先输入use your_Database_name

  1. 单击您的 wamp 服务器图标,然后查找 MYSQL &gt; MSQL Console 然后运行它。

  2. 如果您没有密码,只需按回车键并输入:

    mysql> use database_name;
    mysql> source location_of_your_file;
    

    如果您有密码,您将提示输入密码。先输入密码,然后输入:

    mysql> use database_name;
    mysql> source location_of_your_file;
    

location_of_your_file 应该看起来像 C:\mydb.sql

所以推荐的是mysql>source C:\mydb.sql;

这种导入 sql dump 对 BIG SQL FILE 很有帮助。

我将我的文件 mydb.sq 复制到目录 C: 。它应该是大写 C: 以便运行

就是这样。

【讨论】:

  • 这个答案似乎是 WAMP 特定的,而显示的代码适用于运行 MySQL 的任何环境,您可以通过终端或控制台访问 MySQL。
【解决方案4】:

在 Windows 中,如果上述建议给您一个错误(找不到文件或未知数据库),您可能需要将正斜杠加倍:

在 mysql 控制台中:

mysql> use DATABASE_NAME;

mysql> source C://path//to//file.sql;

【讨论】:

  • 单个正斜杠在我的 Windows 机器上为我工作。
【解决方案5】:

好吧,我使用的是 Linux,但我认为这也适用于 Windows。 您可以直接从命令提示符执行此操作

> mysql -u <user name> -p<password> <database name> < sqlfilename.sql

或者在 mysql 提示符下,您可以使用:

mysql>source sqlfilename.sql

但这两种方法在显示的结果中都有各自的优势。 在第一种方法中,脚本一旦遇到错误就退出。更好的部分是它会告诉您源文件中发生错误的确切行号。但是,它只显示错误。如果它没有遇到任何错误,脚本将显示 NOTHING。这可能有点令人不安。因为您通常会运行包含一大堆命令的脚本。

现在第二种方法(在 mysql 提示符内)的好处是它为脚本中的每个不同 MySQL 命令显示一条消息。如果遇到错误,它会显示 mysql 错误消息,但会继续执行脚本。这可能很好,因为您可以在再次运行脚本之前返回并修复所有错误。缺点是它不显示脚本中遇到错误的行号。这可能有点痛苦。但是错误消息是描述性的,因此您可能会找出问题所在。

一方面,我更喜欢直接从操作系统命令行方法。

【讨论】:

    【解决方案6】:

    如果你使用的是 xampp

    C:\xampp\mysql\bin\mysql -uroot -p nitm < nitm.sql
    

    【讨论】:

      【解决方案7】:

      你快到了 使用

      mysql> \. c:/nitm.sql;
      

      您也可以通过

      获得帮助
      mysql> \?
      

      【讨论】:

      • 这不起作用。当我使用 mysql> \. c:/nitm.sql; ,它会抛出错误,例如无法打开文件'c:\ nitm.sql;',错误:2
      • 您尝试过这种变体吗?一些应用程序尊重 C:\nitm.sql
      • 还要注意末尾的分号不是必需的。所以删除它。另一个选项是 'cd c:' 然后尝试 "\.nitm.sql"
      • 输入前请三思。 'cd c:' 是 DOS 提示符而不是 mySql 控制台的命令。
      • mysql&gt; \. ~/Downloads/backups/file.sql 在 mysql 中完美运行> 并且从终端 coosal 回答也有效。
      【解决方案8】:

      对于 XAMPP 上的本地主机。打开一个cmd窗口并输入

      cd C:\xampp\mysql\bin
      mysql.exe -u root -p
      

      注意! -p 后面没有分号 输入您的密码并输入

      use database_name;
      

      选择您需要的数据库。

      检查你的桌子是否在那里

      show tables;
      

      从你的 sql 文件导入

      source sqlfile.sql;
      

      我已将我的文件放在 C:\xampp\mysql\bin 位置,以免与 sql 文件的位置混淆。

      【讨论】:

        【解决方案9】:

        试试:

        mysql -u username -p database_name < file.sql
        

        检查MySQL Options

        注意:最好使用SQL文件的完整路径file.sql

        【讨论】:

          【解决方案10】:

          别忘了使用

          charset utf8
          

          如果你的 sql 文件是 utf-8 :)

          所以你需要这样做:

          cmd.exe

          mysql -u root

          mysql> 字符集 utf8

          mysql> 使用 mydbname

          mysql> 源 C:\myfolder\myfile.sql

          祝你好运))

          【讨论】:

            【解决方案11】:

            在 Linux 中,我在启动 mysql 之前导航到包含 .sql 文件的目录。系统光标现在与文件位于同一位置,您不需要路径。使用 source myData.sql 将我的日期替换为您的文件名。

            cd whatever directory
            
            mysql - p
            

            连接目标数据库

            source myData.sql
            

            完成

            【讨论】:

              【解决方案12】:

              从命令行(cmd.exe,而不是在 mysql shell 中)尝试类似:

              type c:/nite.sql | mysql -uuser -ppassword dbname
              

              【讨论】:

              • 我还没有为数据库创建任何密码,所以它在密码字段中是空白的。我已经使用了像这样的上述语法 c:/nitm.sql | mysql -u root -p nitm 但这也没有用。你能帮我解决这个问题吗?
              • 省略 -p 也不起作用。这引发了类似“c:”的错误,无法识别为内部或外部命令、可运行程序或批处理文件。
              【解决方案13】:

              您的转储是否包含您的 MySQL 版本不支持的功能?您还可以尝试删除开始(和结束)MySQL 注释的 SET 语句。

              我不知道您的转储是否来自 Linux 版本的 MySQL(行尾)?

              【讨论】:

              • 我已经删除了mysql注释的SET语句。但仍然出现错误。
              • 您可以尝试登录 MySQL 命令 shell 并使用 then 语句:“source c:\nite.sql”。不要忘记选择正确的数据库。
              • 非常感谢您的努力。谢谢。
              【解决方案14】:

              我已经在 D: 驱动器中安装了我的 wamp 服务器,所以你必须从你的命令行转到以下路径->(如果你已经在 c: 驱动器中安装了你的 wamp,那么只需将 d: 替换为 c: 这里)

              D:\>cd wamp
              D:\wamp>cd bin
              D:\wamp\bin>cd mysql
              D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button)
              D:\wamp\bin\mysql\mysql5.5.8>cd bin
              D:\wamp\bin\mysql\mysql5.5.8\bin>mysql -u root -p password db_name < "d:\backupfile.sql"
              

              这里 root 是我的 phpmyadmin 的用户 password 是 phpmyadmin 的密码,所以 如果你没有为 root 设置任何密码,那么在那个地方什么都不输入, db_name 是数据库(您为哪个数据库进行备份) ,backupfile.sql 是您希望从中备份您的数据库的文件,您还可以将备份文件位置(d:\backupfile.sql)从计算机上的任何其他位置更改

              【讨论】:

                【解决方案15】:
                mysql>c:/nitm.sql;
                

                这会将 mysql 命令的输出写入 'nitm.sql;' (';' 应该做什么?)假设你有一个原始文件的副本(在你覆盖它之前)然后:

                mysql < c:/nitm.sql
                

                【讨论】:

                • 这也不起作用。它抛出了类似 ERROR 1064 : You have an error in your SQL syntax;检查与您的 MySql 服务器版本相对应的手册,以在第 1 行的 'mysql
                【解决方案16】:

                导出特定数据库

                 djimi:> mysqldump --user=root --host=localhost --port=3306 --password=test -B CCR KIT >ccr_kit_local.sql
                

                这将导出 CCR 和 KIT 数据库...

                将所有导出的数据库导入特定的 Mysql 实例(您必须在转储文件所在的位置)

                djimi:> mysql --user=root --host=localhost --port=3306 --password=test < ccr_kit_local.sql
                

                【讨论】:

                  【解决方案17】:

                  在 Windows 操作系统中,以下命令适用于我。

                  mysql>Use <DatabaseName>
                  mysql>SOURCE C:/data/ScriptFile.sql;
                  

                  文件名周围没有单引号或双引号。路径将包含“/”而不是“\”。

                  【讨论】:

                    【解决方案18】:

                    对于那些努力完成这项工作的人,请尝试在 SO 上找到的所有可能答案。以下是在运行 Windows 2012 R2 的 VPS 上对我有用的方法:

                    1. 将您的 sql 文件放在 bin 对我来说位于 C:\Program Files\MySQL\MySQL Server 8.0\bin 的任何位置

                    2. 打开 Windows 命令提示符 (cmd)

                    3. 运行C:\Program Files\MySQL\MySQL Server 8.0\bin &gt; mysql -u [username] -p
                    4. 输入您的密码
                    5. 运行命令use [database_name];
                    6. 使用命令源C://Program Files//MySQL//MySQL Server 8.0//bin//mydatabasename.sql 导入文件

                    它为我做到了,因为其他一切都失败了。它也可能对您有所帮助。

                    【讨论】:

                      猜你喜欢
                      • 2017-08-05
                      • 2012-12-19
                      • 1970-01-01
                      • 2020-12-15
                      • 2013-02-23
                      • 2020-07-27
                      • 1970-01-01
                      • 2010-09-14
                      • 2012-03-09
                      相关资源
                      最近更新 更多