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

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

database_name < file.sql

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

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


当前回答

要导入单个数据库,请使用以下命令。

mysql -u username -p password dbname < dump.sql

要导入多个数据库转储,请使用以下命令。

mysql -u username -p password < dump.sql

其他回答

Try:

mysql -u username -p database_name < file.sql

检查MySQL选项。

注意1:最好使用SQL文件file.SQL的完整路径。

注意2:在mysqldump中使用-R和--triggers来保留原始数据库的例程和触发器。默认情况下不会复制它们。

注意3如果MySQL不存在,并且导出的SQL不包含create database(使用--no create db或-n选项导出),则可能需要从MySQL创建(空)数据库,然后才能导入。

如果您已经拥有数据库,请使用以下命令导入转储或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文件所在的位置,请使用上面的相对路径。

作为参考,我只使用了默认的root+,没有密码。它不适用于所有以前的答案。

我创建了一个具有所有权限和密码的新用户。它奏效了。-没有空格的ppassword。

要将数据库转储到SQL文件中,请使用以下命令。

mysqldump -u username -p database_name > database_name.sql

要将SQL文件导入数据库(确保与SQL文件位于同一目录中或提供文件的完整路径),请执行以下操作:

mysql -u username -p database_name < database_name.sql

如果将数据导入Docker容器,请使用以下命令。调整用户(-u)、数据库(-D)、端口(-P)和主机(-h)以适合您的配置。

mysql -u root -D database_name -P 4406 -h localhost --protocol=tcp -p < sample_dump.sql