Mysql字符集修改应该如何实现呢?下面就为您详细介绍已用数据表的Mysql字符集修改方法,希望对您学习Mysql字符集方面能有所启迪。

环境:在应用开始阶段没有正确的设置字符集,在运行一段时间以后才发现存在不能满足需求需要调整,又不想丢弃这段时间的数据,那么就需要进行字符集的修改。字符集的修改不能直接通过”alter database character set *** ” 或者 “alter table tablename character set *** “命令进行,这两个命令都没有更新已有记录的字符集,而只是对新创建的表或者记录生效。

那么已有记录的字符集调整,需要怎么操作呢?
以下模拟的是将latin1字符集的数据库修改成GBK字符集的数据库的过程:
(1) 导出表结构
mysqldump -uroot -p –default-character-set=gbk -d databasesename > createdb.sql
其中–default-character-set=gbk表示设置以什么字符集连接,-d表示只导出表结构,不导出数据
(2) 手工修改createdb.sql中表结构定义中的字符集为新的字符集
(3) 确保记录不再更新,导出所有记录
mysqldump -uroot -p –quick –no-create-info –extended-insert –default-character-set=latin1 databasename > data.sql
–quick:该选项用于转储大的表。它强制Mysqldump从服务器一次一行的检索表中的行,而不是检索所有的行,兵输出前将它缓存在内存中
–extended-insert:使用包括几个values列表的多行Insert语法,这样使转储文件更小,重载文件更快
–no-create-info:不屑重新创建每个转储表的create table语句
–default-character-set=latin1:按照原有的字符集导出所有数据,这样导出的文件中,所有中文都是可见的,不会保存成乱码
(4) 打开data.sql,将SET NAMES latin1 修改成SET NAMES gbk
(5) 使用新的字符集创建新的数据库
create database newdatabasename default charset gbk;
(6) 创建表,执行createdb.sql
mysql -uroot -p newdatabasesname < createdb.sql
(7) 导入数据,执行data.sql
mysql -uroot -p newdatabasename < data.sql

已有数据表的Mysql字符编码修改的更多相关文章

  1. 修改数据库mysql字符编码为UTF8

    Mysql数据库是一个开源的数据库,应用非常广泛.以下是修改mysql数据库的字符编码的操作过程. 步骤1:查看当前的字符编码方法 mysql> show variables like'char ...

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

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

  3. mysql字符编码集(乱码)问题解决

    1.创建数据库 CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 创建表 CREATE TABLE tp_w ...

  4. hibernate自动建表采用UTF-8字符编码

    hibernate自动建表采用UTF-8字符编码 hibernate建表默认为UTF-8编码 >>>>>>>>>>>>>& ...

  5. mysql 字符编码设置

    安装mysql时如果字符编码为默认值latin1,则需要修改为utf8以便支持中文数据. 命令如下: 1.显示数据库字符集 mysql> show create database test;+- ...

  6. linux mysql字符编码问题

    发布:thatboy   来源:脚本学堂     [大 中 小] 本文介绍下,linux环境中mysql字符编码问题的解决办法,有遇到mysql编码问题的朋友,可以参考下本文的介绍,希望对你有一定的帮 ...

  7. 使用命令行将Excel数据表导入Mysql中的方法小结

    从Excel数据表导入MySQL,已经做过好几次了,但每次都会碰到各种问题:invalid utf8 character string, data too long, ...,浪费了不少时间 为了提高 ...

  8. mysql数据库字符编码修改

    mysql数据库字符编码修改 修改数据库的字符集mysql>use mydb mysql>alter database mydb character set utf8; 创建数据库指定数据 ...

  9. MySQL 字符编码问题详细解释

    http://www.codesoil.net/tag/charset Character Set Problem in PHP + MySQL4.1+ 和许多人一样,我也是在转移blog时才发现这个 ...

随机推荐

  1. archlinux locale-gen 命令出错

    如果运行locale-gen命令出现以下的错误“locale alias file `/usr/share/locale/locale.alias' not found: No such file o ...

  2. C语言第七节流程控制

    流程控制 顺序结构:默认的流程结构.按照书写顺序执行每一条语句. 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码. 循环结构:在给定条件成立的情况下,反复执行某一段代码.     ...

  3. Clairewd’s message

    Problem Description Clairewd is a member of FBI. After several years concealing in BUPT, she interce ...

  4. Bus Pass

    ZOJ Problem Set - 2913 Bus Pass Time Limit: 5 Seconds      Memory Limit: 32768 KB You travel a lot b ...

  5. linux安装问题

    java: cannot execute binary file问题 主要原因是 linux系统是32位的,jdk版本是64位的. 补充知识: 1.查看linux位数: #uname -a 如果有x8 ...

  6. AsyncTask的介绍

    android AsyncTask介绍 AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接 ...

  7. 【SVN】删除文件/文件夹 svn: E205007: Could not use external editor to fetch log message

    在SVN Server上删除文件/文件夹 svn delete 文件的URL -m "评论" 一定要加 -m 不然会报错 svn: E205007: Could not use e ...

  8. linux 命令行发送邮件及附件

    环境 本机安装sendmail了, 但是没有启动. 其他机器上有mail server, 并且已经把本机加到open relay列表中了, 可以通过该mail server发送邮件.做法如下:1. 安 ...

  9. Oracle数据库作业-4 查询

    9. 查询"95031"班的学生人数.

  10. 前端插件Emmet

    Sublime text安装 步骤一:首先你需要为sublime text安装Package Control组件: 按Ctrl+`调出sublime text的console 粘贴以下代码到底部命令行 ...