Как решить ошибку 1115 (42000): неизвестный набор символов: utf8mb4 при импорте файла sql в PHPMyAdmin

Эта ошибка обычно возникает при попытке импортировать всю базу данных или одну таблицу, которая была экспортирована из более новой версии PHPMyAdmin. Поэтому, когда вы попытаетесь импортировать этот файл в более старую версию MySQL, которая не поддерживает кодировку utf8mb4, вы столкнетесь с исключением. Наиболее вероятным случаем является то, что локально у вас установлена ​​основная версия MySQL, а на этапе / на хосте VPS у вас установлена ​​версия сервера MySQL ниже 5.5.3.

Проверьте следующее 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 @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 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 CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Как вы можете видеть, если эта таблица импортируется в некоторую базу данных вашего PHPMyAdmin с версией MySQL ниже 5.5.3, следующая строка выдаст известное исключение:

/*!40101 SET NAMES utf8mb4 */;

Как это решить

Существует большая вероятность (в зависимости от вида символов, хранящихся в вашей таблице), что вы можете решить эту проблему, просто изменив utf8mb4 просто utf8, Согласно документации MySQL, utf8mb4 charset — это расширенный набор utf8, который использует максимум четыре байта на символ и поддерживает дополнительные символы (вместо 3, который использует utf8).

Кроме того, если вы можете, вы можете обновить версию MySQL, установленную на вашем сервере, которая поддерживает кодировку utf8mb4.

Ссылка на основную публикацию