`
蓝色飞扬
  • 浏览: 94963 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在windows的DOS窗口下运行mysql命令,insert语句中只要含有汉字数据就出现“data too long for column”错误 。

阅读更多

Console下调用程序发出的指令是通过一种编码格式编码之后发送出去的字符串,接收程序返回的信息同样也使用编码过的字符流。
例如我们要调用:
rename 1.txt 测试.txt
dos下把这行命令用某种编码方式编码成字符串,如果renmae命令接收到这个命令字符串,但错误的理解了这个命令参数的编码,或者console发送这个命令时使用了utf8编码,而renmae认为是gbk编码,则该命令会把文件重命名成乱码的名字。(因为中文windows下编码默认都是gbk,所以我们从来没遇到过这样的乱码问题。在dos窗口左上角右键-->属性,当前代码页: 936 (ANSI/OEM - 简体中文 GBK )验证DOS窗口是GBK编码发送字符)

但是,进入mysql命令之后,mysql命令可并不一定知道你发送的指令是GBK编码的,它可能认为你发送的指令是utf8编码,或者跟数据库编码一致的编码,或者跟某个全局变量一致的编码的指令字符串( mysql默认用什么编码接收指令,我没有研究清楚,请看官补充 )。所以这时候为了避免mysql误解你的指令编码,需要在调用mysql的时候加上--default-character-set=gbk 的参数即 使用 mysql -uroot -p --default-character-set=gbk 登录即可。 注意,不要因为你的数据库是utf8编码就使用mysql -uroot -p --default-character-set=utf8去登录。我们这里说的是dos中发出的指令字符串的编码,dos窗口是不会用utf8编码去发送指令的。
当然,假设某个console发出的指令是通过utf8字符编码的,是不是应该用
mysql -uroot -p --default-character-set=utf8 ?没有试过,但分析应如此。

为什么用MYSQL-Front/SQLyog这样的GUI程序执行同样的sql就没有问题呢?在mysql-front/SQLyog登录时,就可以指定连接字符集,我猜想,登录进去之后在SQL编辑框中发送的SQL指令也许就是通过这个字符集编码的,如果跟数据库一致的话,当然没有问题了。

分享到:
评论

相关推荐

    mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql in

    mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql ...

    ERROR 1406 : Data too long for column 解决办法

    在MySQL数据库操作中,当你尝试插入或更新一行数据时,如果某个字段的值超过了该字段定义的最大长度,系统会抛出“ERROR 1406 : Data too long for column”的错误。这个错误提示非常直接,意味着你试图输入的数据在...

    生成数据库表insert语句脚本

    在数据库管理中,生成数据库表的INSERT语句脚本是一项常用的任务,特别是在数据迁移、备份或测试环境中。INSERT语句是SQL语言的一部分,用于向数据库表中插入新的数据记录。以下将详细介绍如何生成这些脚本以及其在...

    自动生成insert语句的工具

    标题中的“自动生成insert语句的工具”是指一类软件或应用程序,它们能够帮助数据库管理员或开发者快速、方便地生成用于插入数据的SQL INSERT语句。这类工具通常用于将已有的数据库数据导出为INSERT语句,以便在其他...

    MySql写入中文错误解决

    通过以上解决方案,我们可以正确地导入中文字符到 MySQL 中,无需再担心“Data too long for column XX at row n”的错误。同时,我们也需要了解 MySQL 的默认编码为 gb2312,并且需要在不同的场景下选择正确的编码...

    数据库数据导出到insert 语句

    本文将详细讨论如何将数据库中的数据导出为INSERT语句,以便于在需要时能够快速地将这些数据重新插入到数据库中。 首先,我们要理解什么是INSERT语句。在SQL语言中,INSERT语句用于向表中插入新的记录。基本语法...

    数据库表导出insert语句工具

    以MySQL为例,虽然MySQL本身提供了数据导出功能,如使用`mysqldump`命令,但默认情况下,它通常导出的是CREATE TABLE语句和数据的SELECT语句,而非INSERT语句。然而,有些第三方工具,如`Navicat`、`SQLyog`等数据库...

    MySQL操作命令语句

    在使用MySQL时,了解一些基本的命令语句是至关重要的。以下是一些关键的MySQL操作命令及其详细说明: 1. **连接MySQL**: - **本地连接**:在DOS窗口中,进入MySQL的bin目录,输入`mysql -u root -p`,然后按回车...

    Mysql运行SQL语句中文乱码问题的解决方法

    在MySQL数据库中运行包含中文字符的SQL语句时,经常会遇到中文显示为乱码的问题。这一现象不仅降低了开发效率,还可能导致数据错误。本文将详细介绍如何彻底解决MySQL运行SQL语句中文乱码的问题。 #### 一、理解...

    SQLServer导出为Insert语句

    本话题聚焦于如何将SQL Server中的用户表数据导出为Insert语句,这通常用于数据迁移、备份或者测试环境的数据填充。下面我们将详细讨论这个过程以及涉及的相关技术。 1. **SQL Server数据库**:SQL Server是由微软...

    数据库表数据转为insert sql语句

    Data row to insert sql是一个小的工具软件,可以将数据库表中指定数据转换成相应的insert sql语句。目前支持的数据库类型为oracle,db2,ms sql server。 目前还有一些缺陷,还有待完善,具体如下: 1、对ms sql ...

    导出SQL数据为Insert语句

    在IT行业中,数据库管理和数据迁移是常见的任务,而“导出SQL数据为Insert语句”是一种常用的方法,便于数据备份、迁移或测试环境的搭建。本文将深入探讨这个主题,介绍如何将数据库中的数据转换为Insert语句,并...

    MYSQL Dos下命令大全

    MySQL在DOS环境下提供了丰富的命令行操作,这对于数据库的管理和维护非常方便。下面将详细介绍一些基本的MySQL DOS命令以及SQL语句。 首先,MySQL的安装与配置是使用MySQL的第一步。在DOS环境下,可以通过执行`...

    个人总结的MySQL常用命令语句

    ### MySQL常用命令语句详解 #### 一、创建数据库(Create Database) - **命令格式**:`CREATE DATABASE database_name;` - **功能说明**:此命令用于创建一个新的数据库。 - **示例**: ```sql CREATE DATABASE ...

    mysql的DOS操作入门命令

    通过上述步骤,我们可以轻松地在Windows环境下使用DOS命令对MySQL进行基本操作,包括添加服务、启动/停止服务以及设置或修改密码等。这些命令对于日常维护和管理MySQL数据库非常有用。熟悉这些基础操作可以帮助我们...

    MySql.Data.dll 6.4.4 For .NET 2.0

    2. **命令执行**:通过 ` MySqlCommand` 类,可以执行 SQL 查询语句、DML(数据操作语言)语句(如 INSERT、UPDATE 和 DELETE)以及存储过程。 3. **数据适配器和数据集**:` MySqlDataAdapter` 用于填充 `DataSet` ...

    mysql操作语句 dos命令.docx

    这些命令是在 Windows 系统中通过 DOS 命令行来管理 MySQL 服务的最常见方式。 ##### 2.2 检查 MySQL 服务状态 - 使用 `netstat –na | findstr 3306` 命令来查看 MySQL 是否正在监听 3306 端口。 - `findstr` ...

    mysql insert语句:mysql insert user.txt

    mysql insert语句

Global site tag (gtag.js) - Google Analytics