如何从终端导入mysql数据库?

我找不到确切的语法。


当前回答

首先通过命令行连接mysql

mysql -u root -p

进入MySQL PW

选择目标DB名称

use <db_name>

选择要导入的db文件

SET autocommit=0; source /root/<db_file>;

commit;

这个应该可以了。(谢谢清理) 这将工作,即使10GB的DB可以成功导入这种方式。:)

其他回答

打开MySQL命令行客户端,输入密码 更改为要用于导入.sql文件数据的数据库。可以这样做: 使用your_database_name 现在找到要执行的.sql文件。 如果文件位于本地C: drive主目录下,且.sql脚本文件名为currentSqlTable. xml。Sql,您将键入以下内容: \。C: \ currentSqlTable.sql ,按“Enter”,执行SQL脚本文件。

假设你使用的是Linux或Windows控制台:

密码提示:

mysql -u <username> -p <databasename> < <filename.sql>

直接输入密码(不安全):

mysql -u <username> -p<PlainPassword> <databasename> < <filename.sql>

例子:

mysql -u root -p wp_users < wp_users.sql

mysql -u root -pPassword123 wp_users < wp_users.sql

参见:

4.5.1.5. 从文本文件执行SQL语句


注意:如果你是在windows上,那么在执行命令之前,你必须在CMD中cd(改变目录)到你的MySQL/bin目录。

下面的命令在ubuntu 16.04上运行,我不确定它是否在其他Linux平台上运行。

导出SQL文件:

$ mysqldump -u [user_name] -p [database_name] > [database_name.sql]  

例如:mysqldump -u root -p max_development > max_development.sql

导入SQL文件:

$ mysqldump -u [user_name] -p [database_name] < [file_name.sql]

示例:mysqldump -u root -p max_production < max_development.sql

注意SQL文件必须存在同一目录

如果您想从SQL转储中导入数据库,其中可能有“use”语句,我建议使用“-o”选项作为保护,以免意外导入到错误的数据库。

   •   --one-database, -o

       Ignore statements except those those that occur while the default
       database is the one named on the command line. This filtering is
       limited, and based only on USE statements. This is useful for
       skipping updates to other databases in the binary log.

完整的命令:

mysql -u <username> -p -o <databasename> < <filename.sql>

解释:

首先创建一个数据库或使用现有的数据库。在我的例子中,我使用的是一个现有的数据库 在我的例子中,通过给出<数据库> = ClassicModels的名称来加载数据库,并使用操作符<给出数据库的路径= sakilla -data.sql 通过运行show tables,我得到了您可以看到的表列表。

注意:在我的情况下,我得到了一个错误1062,因为我试图再次加载相同的东西。