Para fazer o backup do MySQL DB em um servidor e restaurar em outro, eu preciso da mesma versão do MySQL?
É preferível, mas não obrigatório. Se houver um problema entre as versões, você será notificado (e com uma mensagem informando que há um problema com um comando ou tabela específica).
O dump contém todos os arquivos para o banco de dados exportado, mas não cria o próprio banco de dados. Portanto, no servidor em que você restaura o banco de dados, ele precisa ser criado se não existir.
Exemplo de exportação:
-- 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' (
Não há criação do banco de dados na exportação.