要在一台服务器上备份 MySQL DB 并在另一台服务器上恢复,我是否需要相同版本的 MySQL?

要在一台服务器上备份 MySQL DB 并在另一台服务器上恢复,我是否需要相同版本的 MySQL?

我使用 MySQL 5.1.49 备份了 Ubuntu 10.10 服务器上的旧数据库mysqldump

现在我想在另一台机器上恢复该文件,使用装有 MySQL 版本的 Ubuntu 12.04 服务器5.5.32

我设法通过复制文件rsync,但无法加载数据库。

我尝试过:

sudo mysql -u root -p fulldump.sql < fulldump.sql

我收到此错误:

ERROR 1049 (42000): Unknown database 'fulldump.sql'

但是文件的名称是fulldump.sql,当然也是我当前所在的文件夹。

有任何想法吗?

答案1

要在一台服务器上备份 MySQL DB 并在另一台服务器上恢复,我是否需要相同版本的 MySQL?

这是首选,但不是必需的。如果发布之间出现问题,您将收到通知(并收到一条消息,说明特定命令或表存在问题)。


转储包含导出数据库的所有文件,但不会创建数据库本身。因此,如果数据库不存在,则需要在还原的服务器上创建数据库。

导出示例:

-- MySQL dump 10.11
--
-- Host: localhost    Database: xxxx
-- ------------------------------------------------------
-- Server version       5.0.96-0ubuntu3

/*!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 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `xxxx`
--

DROP TABLE IF EXISTS `xxxx`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `xxxx` (

导出时没有创建数据库。

相关内容