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

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

database_name < file.sql

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

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


当前回答

在Ubuntu中

 mysql -u root -p
 CREATE database dbname;
 use dbname;
 source /home/computername/Downloads/merchantapp.sql
 exit;

在Windows中

下载SQL文件并将其保存在C:\xamp\mysql\bin中。

之后,使用C:\xamp\mysql\bin打开命令提示符:

 C:\xampp\mysql\bin> mysql -u username -p database_name < file.sql

其他回答

mysqldump的一个常见用法是备份整个数据库:

mysqldump db_name > backup-file.sql

您可以像这样将转储文件加载回服务器:

Unix

mysql db_name < backup-file.sql

在Windows命令提示符中相同:

mysql -p -u [user] [database] < backup-file.sql

PowerShell(PowerShell)

cmd.exe /c "mysql -u root -p db_name < backup-file.sql"

MySQL命令行

mysql> use db_name;
mysql> source backup-file.sql;
mysql --user=[user] --password=[password] [database] < news_ml_all.sql

虽然这里的大多数答案只提到了简单的命令

mysql-u数据库用户-p[db_name]<数据库文件.sql

今天,数据库和表具有utf8排序规则是很常见的,而这个命令还不够。在导出的表中具有utf8排序规则,需要使用以下命令:

mysql -u database_user -p  --default-character-set=utf8 [db_name] < database_file.sql

相应的导出可以使用

mysqldump -u database_user -p --default-character-set=utf8 [db_name] > database_file.sql

当然,这也适用于其他字符集,如何显示正确的符号可以在这里看到:

https://dev.mysql.com/doc/refman/5.7/en/show-collation.html

一条评论还提到,如果数据库从不存在,则必须首先创建一个空数据库。这在某些情况下可能是正确的,但取决于导出文件。如果导出的文件中已经包含创建数据库的命令,那么就不必在单独的步骤中创建数据库,这甚至会导致导入时出错。因此,在导入时,建议先查看该文件,以了解其中包含哪些命令;在导出时,建议注意设置,尤其是如果文件非常大且在编辑器中难以读取时。

下面列出并解释了该命令的更多参数:

https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html

如果您使用其他数据库版本,请考虑搜索相应版本的手册。上述链接参考MySQL 5.7版。

编辑:同样的参数也适用于mysqldump。因此,虽然导出和导入的命令不同,但上述参数不同。尽管如此,手册中有一个专门的站点描述了mysqldump的选项:https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

打开MySQL命令行键入mysql bin目录的路径,然后按Enter键将SQL文件粘贴到mysql服务器的bin文件夹中。在MySQL中创建数据库。使用要导入SQL文件的特定数据库。键入source databasefilename.sql并输入SQL文件上载成功。

在Ubuntu中

 mysql -u root -p
 CREATE database dbname;
 use dbname;
 source /home/computername/Downloads/merchantapp.sql
 exit;

在Windows中

下载SQL文件并将其保存在C:\xamp\mysql\bin中。

之后,使用C:\xamp\mysql\bin打开命令提示符:

 C:\xampp\mysql\bin> mysql -u username -p database_name < file.sql