2015-03-18 11 views
12

Ho un MySQL 5.0.84 in esecuzione su un server Slackware 13.0 Staging e volevo copiare una singola tabella su un altro server che era costruito per utilizzare il sistema operativo Ubuntu 14.04 per altri test. Ho preso uno mysqldump di quella tabella e copiato nello testing server. Ottengo il seguente errore quando provo a ripristinare il file di dump.MySQL ERRORE 1231 (42000): La variabile 'character_set_client' non può essere impostata sul valore 'NULL'

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

Please help me come risolvere questo errore. Grazie!

risposta

37

Ho fatto una ricerca su internet e l'ho risolto definitivamente.

Aggiunto il seguente testo all'inizio del file mysqldump e il ripristino è andato a buon fine.

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */; 
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */; 
/*!40101 SET @[email protected]@COLLATION_CONNECTION */; 
/*!40101 SET NAMES utf8 */; 
/*!40103 SET @[email protected]@TIME_ZONE */; 
/*!40103 SET TIME_ZONE='+00:00' */; 
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; 
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; 
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */; 
+0

Questo mostra un problema quando inserisco @@, quando ho generato il file di dump usando phpMyAdmin c'era solo un @. Qualche idea ? –

+0

Grazie. Questo lo ha risolto anche per me. Su Ubuntu 16.04, nuova installazione, se questo aiuta qualcun altro. –

+0

Dove posso trovare il mysqldump? – nethken

14

Ho modificato

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

a

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

nel file di dettagli dopo il codice per la creazione della tabella.

+1

utf-8 non ha funzionato. ma l'aggiunta di utf8 ha funzionato. –

+1

Confermato, deve essere "utf8". –

2

per la mia strada, aprire il file sql, alla fine, fare del:

/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */; 
    /*!40101 SET [email protected]_CHARACTER_SET_RESULTS */; 
    /*!40101 SET [email protected]_COLLATION_CONNECTION */; 

e la fonte di nuovo, poi lavorare bene per me!

0

Bene, grazie a tutte le risposte, mi ha semplicemente aiutato a risolvere il mio problema. Ma copiare e incollare i codici dall'alto non ha funzionato per me. Così, ho esportato il file sql che era già nel mio database e da lì ho preso il codice e aggiunto il testo seguente all'inizio del mio file SQL per importare

-- 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 @[email protected]@CHARACTER_SET_CLIENT */; 
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */; 
/*!40101 SET @[email protected]@COLLATION_CONNECTION */; 
/*!40101 SET NAMES utf8mb4 */; 

Perché questa sezione superiore mancava nel mio documento di sql. Quindi l'importazione ha avuto successo. Spero che questo aiuti anche qualcun altro.

Problemi correlati