首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >同时导入所有mysql数据库

同时导入所有mysql数据库
EN

Stack Overflow用户
提问于 2016-08-02 07:31:55
回答 1查看 378关注 0票数 0

mysql允许您一次导出完整的数据库,但是我发现如果真的很难同时导入完整的数据库。

我使用了mysqldump -u root -p --all-databases > alldb.sql,当我试图通过mysql -u root -p < alldb.sql命令导入完整的数据库时,它给了我非常奇怪的错误。

代码语言:javascript
运行
复制
Error
SQL query:

--
-- Database: `fadudeal_blog`
--
-- --------------------------------------------------------
--
-- Table structure for table `wp_commentmeta`
--
CREATE TABLE IF NOT EXISTS  `wp_commentmeta` (

 `meta_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
 `comment_id` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT  '0',
 `meta_key` VARCHAR( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,
 `meta_value` LONGTEXT COLLATE utf8mb4_unicode_ci,
PRIMARY KEY (  `meta_id` ) ,
KEY  `comment_id` (  `comment_id` ) ,
KEY  `meta_key` (  `meta_key` ( 191 ) )
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci AUTO_INCREMENT =1;

MySQL said: Documentation

#1046 - No database selected  

它的意思是#1046 -没有数据库选择了,我的问题是,当mysql知道我已经同时导出了完整的数据库时,我如何才能指定一个数据库名称?

我现在不知道我是对是错,但我尝试了多次,我发现了同样的问题。请让我知道我们如何可以上传或导入完整的数据库在一次。

EN

Stack Overflow用户

回答已采纳

发布于 2016-08-02 07:39:27

Rohit,我认为您必须创建数据库,然后发出一个USE命令,然后运行SQL。我在这里查看了手册https://dev.mysql.com/doc/refman/5.7/en/mysql-batch-commands.html,它还提供了一个选项,供您在连接自己时提及db_name,比如mysql -u根-p < sql.sql (假设数据库已经创建)。这样做也许值得一试。

shell> mysqldump --数据库db1 db2 db3 > dump.sql --数据库选项导致命令行上的所有名称都被视为数据库名称。如果没有此选项,mysqldump将名视为数据库名,而后面的名称则视为表名。

使用所有数据库或-数据库,mysqldump在每个数据库的转储输出之前写入创建数据库和USE语句。这确保了在重新加载转储文件时,如果转储文件不存在,它会创建每个数据库,并使其成为默认数据库,从而将数据库内容加载到它们来自的同一个数据库中。如果要使转储文件在重新创建数据库之前强制删除每个数据库,也可以使用--选项。在本例中,mysqldump在每个CREATE语句之前写入一个DATABASE语句。

来自:https://dev.mysql.com/doc/refman/5.7/en/mysqldump-sql-format.html

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38714345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档