mysql 字符集的修改 可以使用set names utf8 通过修改配置文件 可修改参数 default_character_set=utf8

但是以上修改方法只对数据库中新增的记录生效,如果数据库中已经存在记录 又不想删除 那么可采用下面的方法:

1 现将数据结构导出

(1),mysqldump -uroot -p --default-character-set=gbk -d databasename >createtb.sql;

其中,--default-character-set  表示以什么字符集连接

-d 表示导出数据结构

(2) 手工修改createtb.sql 中表结构定义中的字符集为新的字符集

(3) 确保数据不再更新,导出所有的数据

mysqldump -urooot -p --quick --no-create-info --extended-insert --default-character-set=latin1 databasename>data.sql

-- quick 表示转储大的表,它强制mysqldump 一次一行的从服务器中检索表中的行,而不是检索所有行,并在输出前将它缓存到内存中。

--extended-insert :表示使用包括几个values 列表的insert 语法,这样转储文件更小,重载文件时可以加速插入

--no-create-info :不重写创建每个转储表的CREATE 语句

--default-character-set:按照原本的字符集导出所有的数据这样不会有乱码

(4) 打开data.sql  将set names latin1 改成 set names  gbk // ‘你想转化的字符集’

(5) 使用新的字符集创建新的数据库create database databasename default character gbk;

(6) 执行createtb.sql 创建表

(7) 导入数据 执行 mysql -uroot -p databasename < data.sql

注意:选择目标字符集的时候要选择比源字符集 更大的字符集,否则会出现目标字符集没有的字符,从而出现乱码。

mysql 已有数据字符集的修改的更多相关文章

  1. mysql已有数据字符集转换

    下面模拟把latin1字符集的数据转换为utf8字符集 一.创建测试表和测试数据: 1.修改会话级别的连接字符集 mysql > set names latin1; 查看一下: 2.创建测试表: ...

  2. MySQL 已有大数据量表进行分区踩坑

    一.背景mysql 表中已有 4 亿数据,为提高查询效率,需创建分区,一开始计划是创建 HASH 分区,结果报错:ERROR 1659 (HY000): Field 'partno' is of a ...

  3. PHP中MySQL数据库连接,数据读写,修改方法

    MySQL连接大的来说有两种方法,一种是mysqli,另一种是mysql.php为连接MySQL提供了函数库,有mysql和mysqli,mysqli是mysql函数库的扩展,是php5才支持的.当你 ...

  4. Django使用Mysql已存在数据表的方法

    在mysql数据库中已经存在有数据的表,自己又不想删除,下面方法可以同步django中创建的表 1.最好将自己建的表名改为前缀和django自动创建表名前缀相同,不改也可以,但是后期表太多容易混乱 2 ...

  5. Mysql修改已有数据的字符集

    Mysql修改已有数据的字符集 问题 在生产环境中跑了很久,发现MysqlClient连接的字符集是默认的latin1,我们一直以为都是utf8,造成这样的误解,是因为在内网环境中,我们是源码编译的M ...

  6. mysql更改已有数据表的字符集,保留原有数据内容

    mysql更改已有数据表的字符集,保留原有数据内容     原文网址:http://blog.csdn.net/learn_2/article/details/6460370 环境:在应用开始阶段没有 ...

  7. 已有数据表的Mysql字符编码修改

    Mysql字符集修改应该如何实现呢?下面就为您详细介绍已用数据表的Mysql字符集修改方法,希望对您学习Mysql字符集方面能有所启迪. 环境:在应用开始阶段没有正确的设置字符集,在运行一段时间以后才 ...

  8. MySQL数据库、数据表和字段字符集查询、修改和配置

    一.设置编码 LINUX  修改vi/etc/my.cnf WINDOWS my.ini 在[client]下添加    default-character-set=utf8 在[mysqld]下添加 ...

  9. MySQL之对数据库库表的字符集的更改

    数据字符集修改步骤: 对于已有的数据库想修改字符集不能直接通过 "alter database character set *"或 "alter table tablen ...

随机推荐

  1. Android单元测试实践

    为什么要写单元测试 首先要介绍为什么蘑菇街支付金融这边会采用单元测试的实践.说起来比较巧,刚开始的时候,只是我一个人会写单元测试.后来老板们知道了,觉得这是件 很有价值的事情,于是就叫我负责我们组的单 ...

  2. wget: unable to resolve host address 解决办法

    vim /etc/resolv.conf 加上下面两句: nameserver 8.8.8.8 #google域名服务器nameserver 8.8.4.4 #google域名服务器

  3. 游戏AI框架

  4. 解决MongoDB磁盘IO问题的三种方法

    1.使用组合式的大文档 我们知道MongoDB是一个文档数据库,其每一条记录都是一个JSON格式的文档.比如像下面的例子,每一天会生成一条这样的统计数据: { metric: "conten ...

  5. Eclipse for j2ee 无法调式问题

    首先要配置tomcat,window--preference--server--Installed Runtimes, add--选择tomcat--next--选择tomcat的安装目录(根目录)- ...

  6. asp.net教程:GridView导出到Excel或Word文件

    asp.net教程:GridView导出到Excel或Word文件</ br> 在项目中我们经常会遇到要求将一些数据导出成Excel或者Word表格的情况,比如中国移动(我是中国移动用户) ...

  7. AVL的删除写法的一个错误

    今天在写AVL删除的时候犯了一个傻逼错误,调了很久,教训惨痛,引以为鉴. 树中允许有重复节点,如果删除的节点有重复,则只删除1个. AVL删除采取的方法是首先判断待删除节点是否存在,如果存在,那么判断 ...

  8. vue组件一

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. vue.js 2.0开发(2)

    如果我们想实时的显示我们todos的长度这个业务逻辑可以这样: <h1>{{message}} ({{todos.length}})</h1> 直接展示todos的length ...

  10. JVM之数据类型

    1.概述 Java虚拟机的数据类型可分为两大类:原始类型(Primitive Types,也称为基本类型)和引用类型(Reference Types).Java虚拟机用不同的字节码指令来操作不同的数据 ...