我有一个.sql文件,其中包含phpMyAdmin的导出。我想使用命令行将其导入到其他服务器。

我安装了Windows Server 2008 R2。我将.sql文件放在C驱动器上,并尝试了以下命令

database_name < file.sql

它不起作用。我遇到语法错误。

我如何才能毫无问题地导入此文件?我需要先创建数据库吗?


当前回答

您可以轻松地使用这些步骤。

将SQL文件下载到“mysql/bin”文件夹中。使用CMD打开“mysql/bin”文件夹。如果不存在所需的数据库,则首先创建数据库。在CMD中键入此命令并运行:mysql-u<user>-p<password><dbname><file.sql“file.sql”是要插入到目标数据库中的sql文件。示例:如果您的“密码”是“1234”,“user”是“root”,“dbname”是“test”:mysql-uroot-p1234测试<file.sql如果您的“密码”为空&“user”为“root”&“dbname”为“test”mysql-u根测试<file.sql检查目标数据是否成功上传。

此方法可用于使用CMD中的SQL文件上载大数据。

确保在步骤4中,如果使用该密码,请将“-p”作为一个没有空格的单词插入。

其他回答

如果您已经拥有数据库,请使用以下命令导入转储或sql文件:

mysql -u username -p database_name < file.sql

如果不需要在MySQL中创建相关的数据库(空),那么第一次登录MySQL控制台时,可以在终端或cmd中运行以下命令

mysql -u userName -p;

并在提示时提供密码。

接下来,创建一个数据库并使用它:

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

然后将sql或转储文件从导入数据库

mysql> source pathToYourSQLFile;

注意:如果您的终端不在转储文件或sql文件所在的位置,请使用上面的相对路径。

我一直遇到数据库没有创建的问题。

我是这样修复的:

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql

类似于vladkras对如何在MySQL中使用命令行导入SQL文件的回答?。

我的主要区别:

数据库必须首先存在-p和密码之间没有空格


shell> mysql -u root -ppassword #note: no space between -p and password
mysql> CREATE DATABASE databasename;
mysql> using databasename;
mysql> source /path/to/backup.sql

我在MariaDB上运行Fedora 26。

要一次导入多个SQL文件,请使用以下命令:

# Unix-based solution
for i in *.sql ; do mysql -u root -pPassword DataBase < $i ; done

对于简单导入:

# Unix-based solution
mysql -u root -pPassword DataBase < data.sql

对于WAMP:

REM mysqlVersion - replace with your own version
C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql

对于XAMPP:

C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql

关于导入巨大文件所需的时间:最重要的是,它需要更多的时间,因为MySQL的默认设置是autocommit=true。您必须在导入文件之前将其设置为关闭,然后检查导入是如何像宝石一样工作的。

您只需执行以下操作:

mysql> use db_name;

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;