web-dev-qa-db-fra.com

MySQL ERROR 1231 (42000): la variable 'character_set_client' ne peut pas être définie sur la valeur 'NULL'

J'ai un MySQL 5.0.84 Sous un serveur Slackware 13.0 Staging et je voulais copier une seule table sur un autre serveur conçu pour utiliser le système d'exploitation Ubuntu 14.04 à d'autres fins de test. J'ai pris un mysqldump de cette table et copié dans le testing server. Je reçois le message d'erreur suivant lorsque j'essaie de restaurer le fichier de vidage.

ERROR 1231 (42000):Variable 'character_set_client' can't be set to the value of 'NULL'

S'il vous plaît, aidez-moi à corriger cette erreur. Merci!

28
Manny

J'ai fait quelques recherches sur Internet et j'ai finalement résolu le problème.

Ajout du texte suivant au début du fichier mysqldump et la restauration a réussi.

/*!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 */;
58
Manny

J'ai modifié

/*!40101 SET character_set_client = @saved_cs_client */;

à

/*!40101 SET character_set_client = 'utf8' */;

dans le fichier de vidage après le code de création de la table.

17
Ľubomír Mlích

Essayez d’augmenter temporairement la taille maximale autorisée des paquets en tapant:

mysql> set global max_allowed_packet=10000000000;

/ via http://injustfiveminutes.com/2013/02/14/errors-restoring-mysql-database-dump-on-wamp-environment/

12
fguillen

sur mon chemin, ouvrez le fichier .sql, à la fin, faites del:

  /*!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 */;

et la source encore, alors travail bien pour moi!

5
vincent.sun

Eh bien, grâce à toutes les réponses, cela m'a simplement aidé à résoudre mon problème. Mais copier et coller des codes d'en haut ne fonctionnait pas pour moi. Donc, j'ai exporté le fichier SQL qui était déjà dans ma base de données et de là j'ai pris le code et ajouté ce qui suit au début de mon fichier SQL à importer

-- phpMyAdmin SQL Dump
-- version 4.7.0
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Aug 16, 2017 at 07:24 AM
-- Server version: 10.1.25-MariaDB
-- PHP Version: 7.1.7

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
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 */;

Parce que cette partie supérieure manquait dans mon document SQL. Ensuite, l'importation a réussi. J'espère que cela aide aussi quelqu'un d'autre.

1
Kiran Dash