• Mysql字符集问题


     1、mysql字符集乱码问题

    参考这个博客的介绍内容https://www.cnblogs.com/digdeep/p/5228199.html

    一般设置SET NAMES = ‘XXX’即可统一字符集

    2、mysql表字符集修改

    针对的是已有数据的库更改字符集,主要分为以下几步,以下模拟从latin1到GBK字符集的操作过程

    1. 导出表结构

    mysqldump –uroot –p –-default-character-set=gbk –d databasename > createtab.sql

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

       3.确保记录不再更新,导出所有记录

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

    其中—quick用于导出大数据量,不缓存查询结果

    --extende-insert使用多value的insert扩展语法,减小文件体积,加速插入

    --no-create-info不导出表结构

    --default-character-set=latin1使用原来的字符集导出所有数据,保证数据不乱码

       4.打开data.sql ,将SET NAMES ‘latin1’ 修改成 SET NAMES ‘gbk’

       5.使用新的字符集创建数据库

    create dtabase databasename default charset gbk

       6.创建表,执行createtab.sql

    mysql –uroot –p databasename < createtab.sql

       7.导入数据,执行data.sql

    mysql –uroot –p databasename < data.sql

    注意:

    1、修改之后的字符集最好是源字符集的超集,或者说字库更大,否则如果更小的话,目标字符集中不支持的字符导入后会变成乱码,丢失一部分数据

    2、使用alter database character set *** 或者 alter table tablename character set *** 命令无法更新已有记录的字符集,只对新创建的表和记录有效,已有记录只能通过先将数据导出,再通过适当调整重新导入后才可完成

  • 相关阅读:
    subprocess模块
    面向对象进阶
    python---面向对象学习
    vim命令---存阅
    python基础-软件目录开发规范
    装饰器、迭代器、生成器
    Python基础类型
    使用Git来撤销修改
    使用Git去管理修改
    了解Git的工作区和暂存区
  • 原文地址:https://www.cnblogs.com/marshwinter/p/13064853.html
Copyright © 2020-2023  润新知