我有一个.sql文件,其中包含phpMyAdmin的导出。我想使用命令行将其导入到其他服务器。
我安装了Windows Server 2008 R2。我将.sql文件放在C驱动器上,并尝试了以下命令
database_name < file.sql
它不起作用。我遇到语法错误。
我如何才能毫无问题地导入此文件?我需要先创建数据库吗?
我有一个.sql文件,其中包含phpMyAdmin的导出。我想使用命令行将其导入到其他服务器。
我安装了Windows Server 2008 R2。我将.sql文件放在C驱动器上,并尝试了以下命令
database_name < file.sql
它不起作用。我遇到语法错误。
我如何才能毫无问题地导入此文件?我需要先创建数据库吗?
当前回答
转到MySQL所在的目录。
c:\mysql\bin\> mysql -u username -p password database_name <
filename.sql
此外,要转储所有数据库,请使用-all databases选项,并且不再需要指定数据库的名称。
mysqldump -u username -ppassword –all-databases > dump.sql
或者您可以使用一些GUI客户端(如SQLyog)来完成此操作。
其他回答
我一直遇到数据库没有创建的问题。
我是这样修复的:
mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
关于导入巨大文件所需的时间:最重要的是,它需要更多的时间,因为MySQL的默认设置是autocommit=true。您必须在导入文件之前将其设置为关闭,然后检查导入是如何像宝石一样工作的。
您只需执行以下操作:
mysql> use db_name;
mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
如果.sql文件包含CREATE database if not EXISTS db_name和USE db_name语句,则不需要在命令行上指定数据库的名称。
如果.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 Secure Shell:
mysqlsh -u <username> -p -h <host> -D <database name> -f dump.sql