我有一个大的(~150mb)sql文件,我试图导入。它太大了,无法通过PHPMyAdmin将其拆分为多个部分,并且它太大而无法通过php脚本导入,因为它在处理脚本30秒后超时。所以我正在寻找如何从MySQL命令行直接导入文件。
在线搜索显示我要使用database_name < file_name.sql
或source file_name.sql
,但我无法让其中任何一个工作。
使用<
会在使用source
时给出通用的MySQL语法错误,从而给出更有希望的failed to open file 'file_name.sql', error: 2
,所以我倾向于认为源命令是在正确的轨道上。
我在Windows中并使用xampp作为localhost服务器(注意我只是尝试在localhost上导入此文件以便我可以执行sql)。我已尝试将该文件放在xampp\mysql\bin
和xampp\mysql\data\database_name
。
任何有关如何从MySQL命令行或任何其他方式将此.sql文件导入MySQL的建议都将不胜感激。
答案 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
为您完成工作。
MySQL
正在运行。phpMyAdmin
或MySQL shell
。cmd.exe
,然后切换到sql
文件所在的目录
位于。mysql -u root -p database_name_here < dump_file_name_here.sql
database name
和dump file name
。MySQL root account password
(如果未设置密码,请删除“-p”开关)。这假定可以通过环境路径找到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中尝试过。 就这样