MySQL ERROR 1231(42000):变量'character_set_client'不能设置为'NULL'的值

时间:2015-03-18 01:31:15

标签: mysqldump

我在Slackware 13.0 MySQL 5.0.84服务器上运行Staging,并希望将单个表复制到另一个服务器,该服务器是为使用Ubuntu 14.04 OS进行其他测试而构建的。我已将mysqldump该表格复制到testing server。我尝试恢复转储文件时收到以下错误。

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

请帮我解决此错误的方法。谢谢!

6 个答案:

答案 0 :(得分:55)

我在互联网上做了一些搜索并最终修复了它。

在mysqldump文件的开头添加了以下文本,恢复成功。

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

答案 1 :(得分:16)

我已修改

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

/*!40101 SET character_set_client = 'utf8' */;
在创建表的代码之后的转储文件中

答案 2 :(得分:12)

输入以下命令,尝试暂时使最大允许的数据包大小任意高:

mysql> set global max_allowed_packet=10000000000;

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

答案 3 :(得分:5)

在我的路上,打开.sql文件,最后,做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 */;

再次采购,然后为我效果好!

答案 4 :(得分:1)

好的,多亏了所有的答案,它只是帮助我解决了我的问题。但是从上面复制和粘贴代码对我来说不起作用。所以,我导出了已经在我的数据库中的sql文件,并从那里我拿了代码并将以下内容添加到我的sql文件的开头导入

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

因为我的sql文档中缺少这个顶部。然后导入成功。我希望这也有助于其他人。

答案 5 :(得分:0)

我从

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

/*!40101 SET CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

对我有用