Ubuntu18.04导入SQL报1231错误 咨询mysqldump文件具体位置
问题现象
导入包含多个.sql文件的Zip压缩包时,抛出如下错误:
1231 - 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 */;
在Ubuntu 18.04系统中找不到对应mysqldump文件,需要确认其存放路径。
解决方案
- 首先纠正常见误解:网传方案中需要添加配置的文件,不是系统中安装的mysqldump可执行程序,而是你当前准备导入的、由mysqldump生成的.sql备份文件。你不需要修改系统层面的程序文件,只需要把上述配置段加到压缩包内每个.sql文件的最开头,重新打包后再导入即可解决报错。
- 如果确实需要查找Ubuntu 18.04系统内mysqldump可执行文件的路径,直接在终端执行命令:
通过apt源默认安装的MySQL/MariaDB,mysqldump的默认路径为which mysqldump/usr/bin/mysqldump;如果是手动编译安装的MySQL,文件一般在安装目录的bin文件夹下,常见路径为/usr/local/mysql/bin/mysqldump。 - 报错根因说明:待导入的.sql文件由高版本MySQL导出,文件头部缺失字符集、时区、约束检查、SQL模式等会话变量的初始化语句,低版本MySQL导入时无法获取对应变量的有效值,就会抛出1231错误,补充上述初始化配置即可修复,无需改动系统自带的mysqldump程序。
内容的提问来源于stack exchange,提问作者Ijaz Khan Niazi
相关产品推荐
相关产品推荐

