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

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

database_name < file.sql

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

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


当前回答

如果要导入到本地数据库服务器,可以执行以下操作:

mysql -u database_user -p < database_file.sql

对于远程数据库服务器,请执行以下操作:

mysql -u database_user -p -h remote_server_url < database_file.sql

其他回答

要一次导入多个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 -u username -p password dbname < dump.sql

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

mysql -u username -p password < dump.sql

在命令行上提供凭据不是一个好主意。以上答案很好,但忽略了提及

mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql

其中etc/myhost.cnf是包含主机、用户和密码的文件,您可以避免在命令行中暴露密码。这是一个样本,

[client]
host=hostname.domainname
user=dbusername
password=dbpassword

如果您正在使用XAMPP,请转到文件夹xappp→ mysql数据库→ 箱子在此处打开cmd并粘贴:

mysql -u root -p dbname < dbfilename.sql

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

mysqldump -u username -p database_name > database_name.sql

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

mysql -u username -p database_name < database_name.sql