如何使用MySQL的source命令在Windows中导入大文件
我有一个试图导入的大(〜150mb)sql文件。 它太大了,无法通过PHPMyAdmin进行处理,甚至将其分成许多部分,而且太大了,无法通过php脚本导入,因为它在处理脚本30秒后超时。 因此,我正在寻找如何从MySQL命令行直接导入文件。
在线搜索显示我想要使用xampp\mysql\bin或xampp\mysql\data\database_name,但我无法使用其中任何一个。
使用xampp\mysql\bin给出了通用的MySQL语法错误,而使用xampp\mysql\data\database_name给出了稍微更有希望的failed to open file 'file_name.sql', error: 2,因此我倾向于认为source命令是正确的。
我在Windows中,并且将xampp用作localhost服务器(请注意,我只是试图在localhost上导入此文件,以便我可以执行sql)。 我尝试将文件放在xampp\mysql\bin和xampp\mysql\data\database_name中。
对于如何从MySQL命令行或通过任何其他方式将该.sql文件导入MySQL的任何建议,将不胜感激。
11个解决方案
54 votes
使用xampp时,我认为您需要在命令行中使用完整路径,如下所示:
C:\xampp\mysql\bin\mysql -u {username} -p {databasename} < file_name.sql
Femi answered 2020-02-05T11:34:29Z
37 votes
在Windows上,这应该可以工作(请注意正斜杠,并且不引用整个路径并且允许使用空格)
SOURCE D:/My Folder with spaces/Folder/filetoimport.sql;
SOURCE D:/My Folder with spaces/Folder/filetoimport.sql;
Valentin Despa answered 2020-02-05T11:35:54Z
34 votes
不要使用mysql.exe,它旨在运行少量sql并显示输出,而不是导入大型数据库。
我使用mysql.exe(不是sql),但应该相同。
您想要做的是使用mysql.exe为您完成工作。
确保mysql.exe正在运行。
通过mysql.exe或sql创建数据库。
然后,运行mysql.exe,并将目录更改为sql文件所在的目录。位于。
执行:mysql.exe
替换为您的mysql.exe和sql。
出现提示时输入您的mysql.exe(如果未设置密码,请删除“ -p”开关)。
假定可以通过环境路径找到mysql.exe,并且sql文件位于运行该文件的目录中。 否则,请使用完整路径。
rightstuff answered 2020-02-05T11:36:54Z
11 votes
选项1。您可以使用单个cmd来执行此操作,其中D是我的xampp或wampp安装文件夹,因此我在mysql.exe安装和第二个选项数据库名最后一个是sql文件的情况下使用此命令,请替换为您的文件,然后运行此文件
D:\xampp\mysql\bin\mysql.exe -u root -p databse_name < D:\yoursqlfile.sql
选项1
D:\wamp64\bin\mysql\mysql5.7.14\bin\mysql.exe -u root -p databse_name< D:\yoursqlfile.sql
更改您的文件夹和mysql版本
选项2假设您当前的路径在显示命令提示符
C:\Users\shafiq;
然后使用C:\xampp\mysql\bin\mysql -u {username} -p {database password}更改目录然后转到安装了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)
然后将源sql放入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
Shafiqul Islam answered 2020-02-05T11:37:58Z
4 votes
C:\xampp\mysql\bin\mysql -u root -p testdatabase < C:\Users\Juan\Desktop\databasebackup.sql
这对我来说很有效,可以将400MB文件导入数据库。
Guillermo Hernández answered 2020-02-05T11:38:18Z
1 votes
在Xampp设置中,我可以使用以下命令将数据库导入MySQL:
C:\xampp\mysql\bin\mysql -u {username goes here} -p {leave password blank} {database name} < /path/to/file.sql [enter]
我在本地计算机上的个人经验如下:
用户名:Root
数据库名称:testdatabase
SQL文件位置:databasebackup.sql位于我的桌面上
C:\xampp\mysql\bin\mysql -u root -p testdatabase < C:\Users\Juan\Desktop\databasebackup.sql
这对我来说很有效,可以将1GB以上的文件导入数据库。
IamJuanValle answered 2020-02-05T11:39:00Z
1 votes
用户名是root,没有密码
mysql -h localhost -u root databasename < dump.sql
我在本地主机上遇到了问题,因为我没有root用户的任何密码。 您可以不使用-p密码来使用它,如上所述。 如果要求输入密码,只需按Enter。
Arjun s answered 2020-02-05T11:39:29Z
1 votes
使用mysql source命令来避免重定向失败,尤其是在Windows上。
mysql [-u ] [-p] -e "source /path/to/dump.sql"
其中e代表“执行命令”
在Windows上,请记住对sql命令使用双引号。
但是,反斜杠\或斜杠/将在Windows上工作。
cdarlint answered 2020-02-05T11:40:02Z
1 votes
使用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密码,然后他们要求输入密码即可,只需输入密码即可导入您的文件。
Ravindra Patel answered 2020-02-05T11:40:48Z
0 votes
在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合作。
ffactory answered 2020-02-05T11:41:13Z
0 votes
您好,我遇到了同样的问题,但是我尝试了许多不同的状态,然后才想到: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中尝试过。就是这样
这就是结果
Arash answered 2020-02-05T11:42:03Z