如何通过 PhpMyAdmin 一次导入多个数据库?
Posted
技术标签:
【中文标题】如何通过 PhpMyAdmin 一次导入多个数据库?【英文标题】:How to import multiple database at once through PhpMyAdmin? 【发布时间】:2014-04-03 04:12:28 【问题描述】:错误
SQL 查询:
--
-- Database: `attend`
--
-- --------------------------------------------------------
--
-- Table structure for table `attend`
--
CREATE TABLE IF NOT EXISTS `attend` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`name` varchar(15) NOT NULL DEFAULT 'name',
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`timeing` time NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;
mysql said: Documentation
#1046 - No database selected
我正在转移我的数据库。我一次导出了所有数据库。 所以在导入期间我无法选择单个数据库。 通过直接导入 sql 文件,我得到了上述错误。 在phpmyadmin import database error上找到了可能的解决方案 但不知道如何在 .sql 文件中为大约 30 个数据库实施此解决方案 请帮助我,因为我在导出所有数据库后删除了旧数据库,需要导入 mASAP。
【问题讨论】:
【参考方案1】:问题是 SQL 需要明确地被告知您正在使用什么数据库,无论是在全局级别还是在每个单独的表创建查询上。在这里我们需要做两件事:
A) 如果该数据库不存在,您需要先创建它。没有办法将不存在的东西放入数据库中。
B) 确保告诉查询要使用哪个数据库。您链接的解决方案使用此解决方案。如果所有表都转到一个数据库,您只会想使用它。该行是:
USE `database_name`;
将database_name
替换为您要使用的数据库的名称。
但是,如果每个表属于不同的数据库,您需要更改以下内容:
CREATE TABLE IF NOT EXISTS `attend` (
到
CREATE TABLE IF NOT EXISTS `database_name`.`attend` (
将database_name
替换为该表将成为其中一部分的数据库的名称。
【讨论】:
最后我在 sql 文件中的每个数据库之前都应用了 USE 语句,工作非常辛苦,但工作正常【参考方案2】:在当前 4.1 版本的 phpMyAdmin 中,当您在服务器级别导出时,如果您打开自定义导出选项,您会看到一个选项“添加 CREATE DATABASE / USE 语句”。这个选项是你需要选择的。
【讨论】:
我有旧版本的 phpMyAdmin,所以这些选项在导出期间不存在【参考方案3】:如askubuntu.com 所述,您可以使用:
-导出使用:mysqldump -u username -p –-all-databases > dump.sql
-导入使用:mysql -u username -p < dump.sql
【讨论】:
以上是关于如何通过 PhpMyAdmin 一次导入多个数据库?的主要内容,如果未能解决你的问题,请参考以下文章