MySQL 可以在命令行上导入使用 phpMyAdmin 创建的数据库转储吗?
Can MySQL database dumps created with phpMyAdmin be imported on the command line?
我有一个 MySQL 数据库转储文件,我正尝试在命令行上导入该文件,使用:
mysql -u my_user_name -p database_name < filename.sql
导入失败并出现此错误:
ERROR 1062 (23000) at line 42: Duplicate entry 'comment_publish_action' for key 'PRIMARY'
我不明白这个错误。这是转储文件的完整文本(很短):
-- phpMyAdmin SQL Dump
-- version 4.1.8
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Mar 18, 2015 at 02:36 PM
-- Server version: 5.5.37-cll
-- PHP Version: 5.4.23
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `database_name`
--
-- --------------------------------------------------------
--
-- Table structure for table `aa_actions`
--
CREATE TABLE IF NOT EXISTS `aa_actions` (
`aid` varchar(255) NOT NULL DEFAULT '0' COMMENT 'Primary Key: Unique actions ID.',
`type` varchar(32) NOT NULL DEFAULT '' COMMENT 'The object that that action acts on (node, user, comment, system or custom types.)',
`callback` varchar(255) NOT NULL DEFAULT '' COMMENT 'The callback function that executes when the action runs.',
`parameters` longblob NOT NULL COMMENT 'Parameters to be passed to the callback function.',
`label` varchar(255) NOT NULL DEFAULT '0' COMMENT 'Label of the action.',
PRIMARY KEY (`aid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores action information.';
--
-- Dumping data for table `aa_actions`
--
INSERT INTO `aa_actions` (`aid`, `type`, `callback`, `parameters`, `label`) VALUES
('comment_publish_action', 'comment', 'comment_publish_action', '', 'Publish comment'),
('comment_save_action', 'comment', 'comment_save_action', '', 'Save comment'),
('comment_unpublish_action', 'comment', 'comment_unpublish_action', '', 'Unpublish comment'),
('node_make_sticky_action', 'node', 'node_make_sticky_action', '', 'Make content sticky'),
('node_make_unsticky_action', 'node', 'node_make_unsticky_action', '', 'Make content unsticky'),
('node_promote_action', 'node', 'node_promote_action', '', 'Promote content to front page'),
('node_publish_action', 'node', 'node_publish_action', '', 'Publish content'),
('node_save_action', 'node', 'node_save_action', '', 'Save content'),
('node_unpromote_action', 'node', 'node_unpromote_action', '', 'Remove content from front page'),
('node_unpublish_action', 'node', 'node_unpublish_action', '', 'Unpublish content'),
('system_block_ip_action', 'user', 'system_block_ip_action', '', 'Ban IP address of current user'),
('user_block_user_action', 'user', 'user_block_user_action', '', 'Block current user');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;t
这是通过转到“导出”选项、切换到自定义导出模式并仅选择 table aa_actions 进行导出而生成的。其他所有内容均保留默认设置。
怎么了?我如何让 MySQL 接受这个文件?我想我可以在我的开发服务器上专门安装 phpMyAdmin 来导入这个文件,但是那会很痛苦。
来自 mysqldump 的手册页
· --add-drop-table
Add a DROP TABLE statement before each CREATE TABLE statement.
或
· --insert-ignore
Write INSERT IGNORE statements rather than INSERT statements.
您可能正在恢复类似的数据库,因此需要在恢复之前擦除数据(第一个选项)或者需要忽略错误(第二个选项)
警告:
第一个命令销毁现有数据,第二个命令忽略不是由重复键引起的任何其他错误。
在不了解您想做什么的情况下,这些是 2 "general" 个解决方案
注意,--opt
包含选项 1,应该 默认启用
我有一个 MySQL 数据库转储文件,我正尝试在命令行上导入该文件,使用:
mysql -u my_user_name -p database_name < filename.sql
导入失败并出现此错误:
ERROR 1062 (23000) at line 42: Duplicate entry 'comment_publish_action' for key 'PRIMARY'
我不明白这个错误。这是转储文件的完整文本(很短):
-- phpMyAdmin SQL Dump
-- version 4.1.8
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Mar 18, 2015 at 02:36 PM
-- Server version: 5.5.37-cll
-- PHP Version: 5.4.23
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `database_name`
--
-- --------------------------------------------------------
--
-- Table structure for table `aa_actions`
--
CREATE TABLE IF NOT EXISTS `aa_actions` (
`aid` varchar(255) NOT NULL DEFAULT '0' COMMENT 'Primary Key: Unique actions ID.',
`type` varchar(32) NOT NULL DEFAULT '' COMMENT 'The object that that action acts on (node, user, comment, system or custom types.)',
`callback` varchar(255) NOT NULL DEFAULT '' COMMENT 'The callback function that executes when the action runs.',
`parameters` longblob NOT NULL COMMENT 'Parameters to be passed to the callback function.',
`label` varchar(255) NOT NULL DEFAULT '0' COMMENT 'Label of the action.',
PRIMARY KEY (`aid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores action information.';
--
-- Dumping data for table `aa_actions`
--
INSERT INTO `aa_actions` (`aid`, `type`, `callback`, `parameters`, `label`) VALUES
('comment_publish_action', 'comment', 'comment_publish_action', '', 'Publish comment'),
('comment_save_action', 'comment', 'comment_save_action', '', 'Save comment'),
('comment_unpublish_action', 'comment', 'comment_unpublish_action', '', 'Unpublish comment'),
('node_make_sticky_action', 'node', 'node_make_sticky_action', '', 'Make content sticky'),
('node_make_unsticky_action', 'node', 'node_make_unsticky_action', '', 'Make content unsticky'),
('node_promote_action', 'node', 'node_promote_action', '', 'Promote content to front page'),
('node_publish_action', 'node', 'node_publish_action', '', 'Publish content'),
('node_save_action', 'node', 'node_save_action', '', 'Save content'),
('node_unpromote_action', 'node', 'node_unpromote_action', '', 'Remove content from front page'),
('node_unpublish_action', 'node', 'node_unpublish_action', '', 'Unpublish content'),
('system_block_ip_action', 'user', 'system_block_ip_action', '', 'Ban IP address of current user'),
('user_block_user_action', 'user', 'user_block_user_action', '', 'Block current user');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;t
这是通过转到“导出”选项、切换到自定义导出模式并仅选择 table aa_actions 进行导出而生成的。其他所有内容均保留默认设置。
怎么了?我如何让 MySQL 接受这个文件?我想我可以在我的开发服务器上专门安装 phpMyAdmin 来导入这个文件,但是那会很痛苦。
来自 mysqldump 的手册页
· --add-drop-table
Add a DROP TABLE statement before each CREATE TABLE statement.
或
· --insert-ignore
Write INSERT IGNORE statements rather than INSERT statements.
您可能正在恢复类似的数据库,因此需要在恢复之前擦除数据(第一个选项)或者需要忽略错误(第二个选项)
警告:
第一个命令销毁现有数据,第二个命令忽略不是由重复键引起的任何其他错误。
在不了解您想做什么的情况下,这些是 2 "general" 个解决方案
注意,--opt
包含选项 1,应该 默认启用