你如何使用MySQL的源代码命令在Windows中导入大文件
我有一个大的(〜150MB)我试图导入的SQL文件。 PHPMyAdmin甚至把它分成许多块,这太大了,它太大,不能通过一个PHP脚本导入,因为它处理脚本后30秒超时。 所以我正在寻找如何直接从MySQL命令行导入文件。
在线search显示我想要使用database_name < file_name.sql
或source file_name.sql
但我不能让这两个工作。
使用<
给出了通用的MySQL语法错误,同时使用source
给稍微更有前途的failed to open file 'file_name.sql', error: 2
所以我倾向于认为源命令是在正确的轨道上。
我在Windows,并使用xampp作为本地主机服务器(注意我只是试图导入本地主机上的这个文件,以便我可以执行SQL)。 我试过把文件放在xampp\mysql\bin
和xampp\mysql\data\database_name
。
任何有关如何从MySQL命令行或通过任何其他方式将这个.sql文件导入MySQL的build议将不胜感激。
用xampp我想你需要在命令行使用完整的path,例如:
C:\xampp\mysql\bin\mysql -u {username} -p {databasename} < file_name.sql
不要使用"source"
,它的目的是运行less量的sql queries
并显示输出,而不是导入大型数据库。
我使用Wamp Developer
(不是XAMPP
),但它应该是一样的。
你想要做的是使用MySQL Client
为你做的工作。
- 确保
MySQL
正在运行。 - 通过
phpMyAdmin
或MySQL Shell
创build数据库。 - 然后,运行
cmd.exe
,并切换到您的sql
文件所在的目录。 - 执行:
mysql -u root -p database_name < database_dump_file.sql
- replace你的
database name
和sql file name
。 - 出现提示时input您的
MySQL root account password
。
这假定mysql.exe
可以通过pathfind,并且该sql
文件位于您正在运行该目录的目录中。 否则,请使用完整path。
在Windows上,这应该工作(注意前向空白,并且整个path不被引用,并且允许空格)
USE yourdb;
SOURCE D:/My Folder with spaces/Folder/filetoimport.sql;
选项1.你可以做到这一点使用单一的cmd,其中D是我的xampp或wampp安装文件夹,所以我用这个地方mysql.exe安装和第二个选项数据库名称和最后是sql文件,所以取代它为你然后运行
D:\xampp\mysql\bin\mysql.exe -u root -p databse_name < D:\yoursqlfile.sql
选项2假设您的当前path是显示命令提示符
C:\Users\shafiq;
然后改变目录使用cd..
然后转到你的安装xampp的mysql目录。 然后cd..
换目录。 然后去bin文件夹。
C:\xampp\mysql\bin;
C:\xampp\mysql\bin\mysql -u {username} -p {database password}
。然后在命令提示符下input密码时请input。
使用mysql-> use test (database name test)
select数据库。
然后把源文件放在bin文件夹中。
那么最后的命令是mysql-> source test.sql
然后按回车
C:\xampp\mysql\bin C:\xampp\mysql\bin\mysql -u {username} -p {database password} mysql-> use test mysql->source test.sql
C:\xampp\mysql\bin\mysql -u root -p testdatabase < C:\Users\Juan\Desktop\databasebackup.sql
这对我来说,导入400MB的文件到我的数据库。
在我的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 +文件导入到我的数据库。
用户名为root,没有密码
mysql -h localhost -u root databasename < dump.sql
我已经遇到了我的本地主机上的问题,因为我没有任何root用户的密码。 你可以使用它没有-p密码如上。 如果要求input密码,只需按回车。
使用mysql source
命令来避免redirect失败,特别是在Windows上。
mysql [-u <username>] [-p<password>] databasename -e "source /path/to/dump.sql"
其中e为“执行命令”
在Windows上,请记住对于sql命令使用双引号。
但是,反斜杠\或斜杠/将在Windows上工作。