Как решить ошибку 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.

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