MySQL 错误 1231 (42000):变量 'character_set_client' 无法设置为 'NULL' 的值
MySQL ERROR 1231 (42000):Variable 'character_set_client' can't be set to the value of 'NULL'
我在 Slackware 13.0 Staging
服务器中有一个 MySQL 5.0.84
运行,我想将一个 table 复制到另一个服务器,该服务器是为使用 Ubuntu 14.04 OS 进行一些其他测试。我已经从 table 中提取了一个 mysqldump
并复制到 testing server
。当我尝试恢复转储文件时出现以下错误。
ERROR 1231 (42000):Variable 'character_set_client' can't be set to the value of 'NULL'
请帮我解决这个错误。谢谢!
我在网上搜索了一下,终于修好了。
在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 */;
尝试通过键入暂时使最大允许数据包大小任意高:
mysql> set global max_allowed_packet=10000000000;
/通过http://injustfiveminutes.com/2013/02/14/errors-restoring-mysql-database-dump-on-wamp-environment/
我修改了
/*!40101 SET character_set_client = @saved_cs_client */;
到
/*!40101 SET character_set_client = 'utf8' */;
在创建代码后的转储文件中 table。
在路上,打开 .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 */;
然后重新获取它,然后对我来说很好用!
好吧,感谢所有的回答,它帮助我解决了我的问题。但是从上面复制和粘贴代码对我不起作用。因此,我导出了已经在我的数据库中的 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 文档中缺少此顶部部分。然后导入成功。我希望这对其他人也有帮助。
我从
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
至
/*!40101 SET CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
对我有用
我通过在 SQL 转储文件的开头添加这 3 行来为我工作。
/*!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 */;
我在 Slackware 13.0 Staging
服务器中有一个 MySQL 5.0.84
运行,我想将一个 table 复制到另一个服务器,该服务器是为使用 Ubuntu 14.04 OS 进行一些其他测试。我已经从 table 中提取了一个 mysqldump
并复制到 testing server
。当我尝试恢复转储文件时出现以下错误。
ERROR 1231 (42000):Variable 'character_set_client' can't be set to the value of 'NULL'
请帮我解决这个错误。谢谢!
我在网上搜索了一下,终于修好了。
在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 */;
尝试通过键入暂时使最大允许数据包大小任意高:
mysql> set global max_allowed_packet=10000000000;
/通过http://injustfiveminutes.com/2013/02/14/errors-restoring-mysql-database-dump-on-wamp-environment/
我修改了
/*!40101 SET character_set_client = @saved_cs_client */;
到
/*!40101 SET character_set_client = 'utf8' */;
在创建代码后的转储文件中 table。
在路上,打开 .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 */;
然后重新获取它,然后对我来说很好用!
好吧,感谢所有的回答,它帮助我解决了我的问题。但是从上面复制和粘贴代码对我不起作用。因此,我导出了已经在我的数据库中的 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 文档中缺少此顶部部分。然后导入成功。我希望这对其他人也有帮助。
我从
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
至
/*!40101 SET CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
对我有用
我通过在 SQL 转储文件的开头添加这 3 行来为我工作。
/*!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 */;