Descubre por qué aparece el error de juego de caracteres desconocido en PHPMyAdmin y cómo solucionarlo.

Este error (Error 1115 (42000): Unknown character set: 'utf8mb4' when importing a sql file in PHPMyAdmin) suele ocurrir cuando intenta importar una base de datos completa o una sola tabla que se exportó desde una versión más reciente de PHPMyAdmin. Entonces, cuando intente importar este archivo a una versión anterior de MySQL que no es compatible con el juego de caracteres utf8mb4, enfrentará la excepción. El caso más probable es que, localmente, tenga una versión principal de MySQL, y en el escenario / VPS alojado tenga la versión del servidor MySQL inferior a 5.5.3.

Verifica el siguiente archivo users.sql:

-- phpMyAdmin SQL Dump
-- version 4.6.5.2
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Oct 29, 2017 at 04:27 PM
-- Server version: 10.1.21-MariaDB
-- PHP Version: 5.6.30

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `testing`
--

-- --------------------------------------------------------

--
-- Table structure for table `users`
--

CREATE TABLE `users` (
  `id` bigint(20) NOT NULL,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `address` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
  MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT;
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;

Como puede ver, si esta tabla se importa en alguna base de datos de su PHPMyAdmin con una versión de MySQL inferior a  5.5.3, la siguiente línea arrojará la excepción conocida:

/*!40101 SET NAMES utf8mb4 */;

Cómo resolverlo

Existe una buena posibilidad (dependiendo del tipo de caracteres almacenados en su mesa) de que pueda resolver este problema simplemente cambiando el archivo utf8mb4 con solamente utf8. Según los documentos de MySQL, el juego de caracteres utf8mb4 es un superconjunto de utf8 que usa un máximo de cuatro bytes por carácter y admite caracteres suplementarios (en lugar de 3 que usan utf8).

Alternativamente, si puede, puede actualizar la versión de MySQL instalada en su servidor que admite el juego de caracteres utf8mb4.

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores