如何使用命令行将单个表导入mysql数据库

Posted

技术标签:

【中文标题】如何使用命令行将单个表导入mysql数据库【英文标题】:How to import a single table in to mysql database using command line 【发布时间】:2011-07-20 05:54:25 【问题描述】:

我已经使用命令行成功导入了一个数据库,但现在我的痛点是如何使用命令行将单个表及其数据导入到现有数据库中。

【问题讨论】:

只导出单表并导入 另请参阅此重复问题:***.com/q/1013852/385571 及其更相关的答案 Can I restore a single table from a full mysql mysqldump file?的可能重复 【参考方案1】:

Linux:

在命令行中

 mysql -u username -p  databasename  < path/example.sql

把你的表放在example.sql中

单个表的导入/导出:

    导出表架构

    mysqldump -u username -p databasename tableName > path/example.sql
    

    这将在提到的路径创建一个名为example.sql的文件,并编写create table sql命令创建表tableName

    将数据导入表格

    mysql -u username -p databasename < path/example.sql
    

    此命令需要一个包含inserttableName 语句形式的数据的sql 文件。将执行所有insert 语句并加载数据。

【讨论】:

-u 错过了 ;) mysqldump -u username -p databasename tableName > path/example.sql 导入不需要使用 mysql dump。 mysql -u username -p databasename tableName 并非所有 MySQL 版本都需要 tableName 名称,它会产生错误,因此您可能需要省略它! 我得到一个语法错误,直到我意识到执行时是在 bash 而不是 mysql 中。 这只有在我可以访问可以导出特定表的数据库时才有效。但是,如果我有一个完整的数据库转储并且想要挑选要导入的表,则此解决方案将不起作用。链接的帖子Can I restore a single table from a full mysql mysqldump file? 解决了这个问题。【参考方案2】:

导出:

mysqldump --user=root databasename > whole.database.sql
mysqldump --user=root databasename onlySingleTableName > single.table.sql

导入

整个数据库

mysql --user=root wholedatabase < whole.database.sql

单个

mysql --user=root databasename < single.table.sql

【讨论】:

【参考方案3】:

导入单个表

要将单个表导入现有数据库,您可以使用以下命令:

mysql -u username -p -D database_name < tableName.sql

注意:最好使用sql文件tableName.sql的全路径

【讨论】:

【参考方案4】:

命令行

单个表的导入/导出:

导出表架构

 -> mysqldump -u your_user_name -p your_database_name table_name > test.sql

这将创建一个名为 test.sql 的文件并创建表 sql 命令来创建表 table_name。

将数据导入表格

 -> mysql -u your_user_name -p database_name table_name < test.sql

确保您的 test.sql 文件位于同一目录中,如果没有通过路径导航然后运行命令。

【讨论】:

您不需要在命令行中指定表名,因为导出的SQL文件有相关的创建表的调用。您只需要mysql -u your_user_name -p database_name &lt; test.sql 这是一个来自导出表的示例,` 22 DROP TABLE IF EXISTS account_product_prices; 23 /*!40101 SET @saved_cs_client = @@character_set_client /; 24 /!40101 SET character_set_client = utf8 */; 25 创建表account_product_prices (`【参考方案5】:

首先,登录你的数据库,检查你要导入的数据库表是否在你的数据库中不可用。

如果可用,请使用命令删除该表。否则导入表格时会报错。

DROP TABLE Table_Name;

然后,移动到您拥有 .sql 文件的文件夹以导入并从终端运行以下命令

mysql -u username -p  databasename  < yourtable.sql

终端会要求您输入密码。输入它并检查数据库。

【讨论】:

【参考方案6】:

它工作正常...

C:\>mysql>bin>mysql -u USERNAME DB_NAME < tableNameFile.sql

请注意 .sql 文件指定了您当前的数据库..

【讨论】:

【参考方案7】:

我们可以使用 CMD 导入单个表,如下所示:

D:\wamp\bin\mysql\mysql5.5.24\bin>mysql -h hostname -u username -p passowrd databasename < filepath

【讨论】:

【参考方案8】:

如果您的数据库中已有所需的表,请先将其删除,然后运行以下命令:

 mysql -u username -p  databasename  < yourtable.sql

【讨论】:

【参考方案9】:

从服务器到本地(导出)

mysqldump -u username -p db_name table_name > path/filename.sql;
mysqldump -u root -p remotelab welcome_ulink > 
/home_local/ladmin/kakalwar/base/welcome_ulink.sql;

从本地到服务器(导入)

mysql -u username -p -D databasename < path/x/y/z/welcome_queue.sql
mysql -u root -p -D remotelab < 
/home_local/ladmin/kakalwar/instant_status/db_04_12/welcome_queue.sql

【讨论】:

对于初学者,请注意你必须从终端而不是在 mysql 内点击命令后操作它会询问密码 db_password【参考方案10】:

它的工作原理也是如此。命令形式

cd C:\wamp\bin\mysql\mysql5.5.8\bin //hit enter
mysql -u -p databasename //-u=root,-p=blank

【讨论】:

【参考方案11】:

它将是EXPORT INTO OUTFILELOAD DATA INFILE 的组合

您需要使用EXPORT INTO OUTFILE 导出该单个表,这会将表数据导出到文件。您可以使用 LOAD DATA INFILE

导入该特定表

参考doc1,doc2

【讨论】:

【参考方案12】:

如果您在 SQL 转储的密码中并且需要其中的表,请执行以下操作:

sed -n '/-- Table structure for table `'TableNameTo_GrabHere'`/,/-- Table/ /^--.*$/d;p ' dump_file_to_extract_from.sql > table_name_here.sql

然后只需将您从上面提取的表导入所需的数据库中

【讨论】:

【参考方案13】:

你可以用 mysql 命令代替 linux 命令。 1.登录你的mysql。 2.在mysql命令中执行这个:use DATABASE_NAME;SET autocommit=0 ; source ABSOLUTE_PATH/TABLE_SQL_FILE.sql ; COMMIT ;

【讨论】:

【参考方案14】:
mysql -u root -p -D dbname < tablename.sql

【讨论】:

虽然欢迎使用此代码 sn-p,并且可能会提供一些帮助,但它会是 greatly improved if it included an explanation of howwhy 这解决了问题。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。【参考方案15】:
-> mysql -h host -u user -p database_name table_name < test_table.sql

【讨论】:

最新的mysql版本中没有table_name参数【参考方案16】:

根据数据库的大小,使用临时数据库可能是一种解决方案。

mysql -u [username] -p -e "create database tempdb"
mysql -u [username] -p tempdb < db.sql
mysqldump -u [username] -p tempdb _table_to_import_ > table_to_import.sql
mysql -u [username] -p maindb < table_to_import.sql

【讨论】:

【参考方案17】:

要将表导入数据库,如果表已经存在,则将此行添加到您的 sql 文件 DROP TABLE IF EXIST 'table_name' 并运行命令 mysql -u username -p database_name &lt; import_sql_file.sql。 执行命令前请验证sql文件路径。

【讨论】:

【参考方案18】:

首先备份你的两个数据库,步骤 2 选择要导出的表现在选择导出按钮现在下载 sql 文件现在你必须导入另一个数据库只需选择数据库然后导入 sql 文件...简单并且容易。

【讨论】:

以上是关于如何使用命令行将单个表导入mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用命令行将Excel数据表导入Mysql中的方法小结

通过命令行将csv导入mysql

使用Open Office从命令行将Excel电子表格的单个工作表导出为CSV

阿里云数据库备份如何导入单个表到本地

给mysql数据库的某个表导入新数据,怎么才能不覆盖原来的表呢,急!!!!!!!!!

mysql中把一个表的数据批量导入另一个表中(不同情况)