如何使用MySQL的源命令在Windows中导入大文件

时间:2011-05-28 18:41:30

标签: mysql import xampp

我有一个大的(~150mb)sql文件,我试图导入。它太大了,无法通过PHPMyAdmin将其拆分为多个部分,并且它太大而无法通过php脚本导入,因为它在处理脚本30秒后超时。所以我正在寻找如何从MySQL命令行直接导入文件。

在线搜索显示我要使用database_name < file_name.sqlsource file_name.sql,但我无法让其中任何一个工作。

使用<会在使用source时给出通用的MySQL语法错误,从而给出更有希望的failed to open file 'file_name.sql', error: 2,所以我倾向于认为源命令是在正确的轨道上。

我在Windows中并使用xampp作为localhost服务器(注意我只是尝试在localhost上导入此文件以便我可以执行sql)。我已尝试将该文件放在xampp\mysql\binxampp\mysql\data\database_name

任何有关如何从MySQL命令行或任何其他方式将此.sql文件导入MySQL的建议都将不胜感激。

11 个答案:

答案 0 :(得分:54)

使用xampp我认为你需要在命令行使用完整路径,这可能是这样的:

C:\xampp\mysql\bin\mysql -u {username} -p {databasename} < file_name.sql

答案 1 :(得分:34)

不要使用"source",它旨在运行少量sql queries并显示输出,而不是导入大型数据库。

我使用Wamp Developer(不是XAMPP)但它应该是相同的。

您要做的是使用MySQL Client为您完成工作。

  1. 确保MySQL正在运行。
  2. 通过phpMyAdminMySQL shell
  3. 创建您的数据库
  4. 然后,运行cmd.exe,然后切换到sql文件所在的目录 位于。
  5. 执行:mysql -u root -p database_name_here < dump_file_name_here.sql
  6. 替换您的database namedump file name
  7. 出现提示时输入MySQL root account password(如果未设置密码,请删除“-p”开关)。
  8. 这假定可以通过环境路径找到mysql.exe,并且sql文件位于您运行此目录的目录中。否则,请使用完整路径。

答案 2 :(得分:34)

在Windows上,这应该有用(注意前进,并且没有引用整个路径并且允许空格)

USE yourdb;

SOURCE D:/My Folder with spaces/Folder/filetoimport.sql;

答案 3 :(得分:9)

选项1。你可以使用单个cmd执行此操作,其中D是我的xampp或wampp安装文件夹,所以我使用这个mysql.exe安装和第二个选项数据库名称,最后是sql文件,所以替换它就像你那样运行

D:\xampp\mysql\bin\mysql.exe -u root -p databse_name < D:\yoursqlfile.sql

wampp的选项1

D:\wamp64\bin\mysql\mysql5.7.14\bin\mysql.exe -u root -p databse_name< D:\yoursqlfile.sql

更改您的文件夹和mysql版本

选项2 假设您当前的路径显示命令提示符

C:\Users\shafiq;

然后使用cd..更改目录 然后转到你安装xampp的mysql目录。然后cd..更改目录。然后转到bin文件夹。

C:\xampp\mysql\bin;

C:\xampp\mysql\bin\mysql -u {username} -p {database password}。然后在命令提示符下看到输入密码时输入。

使用

选择数据库
mysql->use test (where database name test) 

然后将源文件放入bin文件夹中。

然后最后一个命令将是

mysql-> source test.sql (where test.sql is file name which need to import)

然后按回车

这是完整的命令

C:\Users\shafiq;
C:\xampp\mysql\bin
C:\xampp\mysql\bin\mysql -u {username} -p {database password}
 mysql-> use test
 mysql->source test.sql

答案 4 :(得分:4)

C:\xampp\mysql\bin\mysql -u root -p testdatabase < C:\Users\Juan\Desktop\databasebackup.sql

我可以将400MB文件导入我的数据库。

答案 5 :(得分:1)

在我的Xampp设置中,我能够使用以下内容将数据库导入MySQL:

C:\xampp\mysql\bin\mysql -u {username goes here} -p {leave password blank} {database name} < /path/to/file.sql [enter]

我在本地机器上的个人经历如下:
用户名:根目录 数据库名称: testdatabase
SQL文件位置: databasebackup.sql位于我的桌面上

C:\xampp\mysql\bin\mysql -u root -p testdatabase < C:\Users\Juan\Desktop\databasebackup.sql 

这对我来说可以将我的1GB +文件导入我的数据库。

答案 6 :(得分:1)

root用户名无密码

mysql -h localhost -u root databasename < dump.sql

我在本地主机上遇到了问题,因为我没有root用户的密码。如上所述,您可以不使用-p密码使用它。如果要求输入密码,只需按Enter键。

答案 7 :(得分:1)

用于在MySQL中使用命令行导入大型SQL文件。

首先在命令行转到文件路径。 然后,

选项1:

mysql -u {user_name} -p{password} {database_name}  < your_file.sql

给出警告消息:在命令行界面上使用密码可能不安全。

完成。您的文件将被导入。

选项2:

mysql -u {user_name} -p {database_name}  < your_file.sql

在这种情况下,您不提供sql密码,然后他们要求输入密码,只需输入密码,即可导入您的文件。

答案 8 :(得分:0)

使用mysql RewriteCond %{HTTP_HOST} ^[^.]+\.(?:com|co\.uk)$ [NC] RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 命令来避免重定向失败,尤其是在Windows上。

source

其中e表示“执行命令”

在Windows上,请记得对sql命令使用双引号。

但是,反斜杠\或斜杠/将在Windows上运行。

答案 9 :(得分:0)

在Windows上: 使用资源管理器导航到包含.sql文件的文件夹。 在顶部地址栏中键入cmd。 Cmd将开放。 类型:

"C:\path\to\mysql.exe" -u "your_username" -p "your password" < "name_of_your_sql_file.sql"

等一下,sql文件将在您的数据库上执行。 确认在2018年2月与MariaDB合作。

答案 10 :(得分:0)

你好,我遇到了同样的问题,但是我尝试了许多不同的状态,然后我想到了: SOURCE无法使用;最后是我的情况:

SOURCE D:\Barname-Narmafzar\computer programming's languages\SQL\MySQL\dataAug-12-2019\dataAug-12-2019.sql;

,错误是:

ERROR: Unknown command '\B'. '> 它也无法使用该地址的引号。 但是它可以在没有的情况下工作;最后:

SOURCE D:\Barname-Narmafzar\computer programming's languages\SQL\MySQL\dataAug-12-2019\dataAug-12-2019.sql

但是请记住使用USE database_name;在那之前。 我认为是这样,因为SOURCE或USE或HELP是针对Mysql本身的,它们不是这样的查询代码,尽管当您编写HELP时会说:

“请注意,所有文本命令必须先行并以;结尾。”

但是这里不起作用。

我应该说我已经在CMD中完成了此操作,但没有在Mysql Workbench中尝试过。 就这样

This is the result