这两天在学习webpy,把webpy的一个blog例子扒下来学习一下,默认创建的table当存入中文的时候是乱码,研究了一下这个问题。

1,创建table的时候就使用utf8编码

举个例子:

1 create tableentries2 (

2 id intauto_increment,

3 title text,

4 content text,

5 posted_on datetime,

6 primary key(id)

7 ) character set = utf8;

在每次创建表的时候都在最后加上

character set = utf8

就可以很好的支持中文。

2,修改已经有的table的编码

当使用默认编码创建了一个table的时候,是不能支持中文的,这时候使用如下语句对table_name进行修改:

alter table table_name convert to character set utf8;

此后再往这个table插入中文的时候,就可以正常存储和读取了,但不知道为什么之前的乱码还是不能纠正,只能新插入的数据没有问题。

[注意]  我google了一下,有些地方说这个命令也行,但是我测试以后并不行

alter table table_name charset=utf8; #这个语句并没有让table_name支持中文

修改table编码前:

修改为utf8后并插入一行数据:

可以看到已支持中文,但之前的3行还是没有改变。

3,修改table中一个column的编码

这个我目前还没发现需要在实际中使用到,但是测试了很多次,语句如下:

alter table entries modify title mediumtext character set utf8;

其中entries是我的table名,title是我要修改的column字段,mediumtext是title的类型。

即使是修改table某个字段的编码,也没有做到让之前的乱码变成中文。

4,如何查看一个database,一个table的编码

查看database的编码,假如database名字为webpy:

show create database webpy;

查看一个table的编码,假如table名为entries2:

show create table entries2;

效果如下,其实表中每个字段编码都是utf8,表的default的utf8的,所以没有单独显示每个字段的。

5,修改mysql的配置文件,让mysql默认编码为utf8

在我的ubuntu机器上,mysql的配置目录为/etc/mysql

而我们mysql使用的配置文件为

/etc/mysql/my.cnf

我们可以直接加在my.cnf中,当然为了方便移植可复用,也可以如下写在独立的配置文件中。

在my.cnf最后又include了 conf.d/ 下面所有的*.cnf文件,所以我们就在conf.d/下面加上一个我们自己的配置文件wy_sql.cnf

添加如下两行

[mysqld]

character-set-server=utf8

再创建表的时候默认编码就是utf8了。

6,    显示的问题

上面改了服务器的字符编码,但是如果不改client的,在终端上显示的还是???

还需要在配置文件中加上

[client]default-character-set=utf8

通过

show variables like '%char%'

可以查看

和编码  "character" , 有关的变量

Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

7, 直接在mysql中使用 set 设置 变量

上面我们用show 查看了一些变量的值

那么可以直接用set来设置,但是这是临时的,下次启动后还是以配置文件的为准

set character_set_result = utf8;

mysql 汉字_让MySQL支持中文相关推荐

  1. MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串

    MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音 一.MySQL创建函数 1.语法 CREATE FUNCTION fun_name([paramName type , ...

  2. mysql默认编码改为gbk_查看改mysql编码方式让它支持中文(gbk或者utf8)

    MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码改为gbk或者utf8. 1.需要以root用户身份登录才可以查看数据库编码方式(以root用户身份登录的命令为:> ...

  3. c# mysql 汉字乱码_c#+mysql 中文乱码

    一.错误读出 现象:一个已经存在数据的MySQL数据库,该数据库的数据用系统中其它软件.网页查看均正常,使用MySQLcc之类的客户端查看也正常,可是在新写的网页中总是显示乱码. 分析:其它系统都可以 ...

  4. mysql整备_【mysql】使用xtrabackup在线增量备份及恢复数据库

    一.Percona Xtrabackup 简介 1.Xtrabackup  bin目录文件 介绍 1)innobackupex innobackupex 是xtrabackup的一个符号链接 . in ...

  5. xshell安装mysql步骤_数据库Mysql与禅道安装

    一.Linux上搭建禅道 Mysql 是关系型数据库管理系统 1.下载安装包:将安装包直接解压到/opt目录下,不要 解压到别的目录在拷贝到/opt/,因为这样会导致文件的所有者和读写权限改变 2.解 ...

  6. 建立唯一索引后mysql策略_【MySQL】MySQL索引背后的之使用策略及优化【转】

    另外很不错的对于索引及索引优化的文章: 索引的使用 示例数据库 为了讨论索引策略,需要一个数据量不算小的数据库作为示例.本文选用MySQL官方文档中提供的示例数据库之一:employees.这个数据库 ...

  7. mysql 知识_关于mysql基础知识的介绍

    一.启动与退出1.进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可.此时的提示符是:mysql> 或打开终端,输入SQL ...

  8. mysql 显示表_显示MYSQL表信息的方法

    MYSQL表信息的查看方法是我们经常要实现的功能,下面就为您介绍显示MYSQL表信息的方法,如果您对MYSQL表信息方面感兴趣的话,不妨一看. 在用mysql时(show tables),有时候需要查 ...

  9. shell实行mysql语句_【Mysql】shell运行mysql的sql语句_MySQL

    bitsCN.com [Mysql]shell运行mysql的sql语句 shell本身是一种脚本语言,所以不能像java一样通过api去连接数据库.shell还是要借助mysql本身的一些运行脚本才 ...

最新文章

  1. Microsoft Dynamics CRM 2013 试用之系统篇 正式安装 Microsoft Dynamics CRM Server 2013
  2. 错误请联系管理员文件 index.php,帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法...
  3. python3 enumerate()函数笔记
  4. MySQL常用存储引擎
  5. Java类加载器( 死磕9)
  6. k8s核心技术-Controller(statefulSet)_部署有状态应用---K8S_Google工作笔记0033
  7. 物联网99%是中小企业 引发赚快钱担忧
  8. Android中activity的生命周期
  9. 【编译器】VSCode配置Go语言开发环境
  10. ElasticSearch - 学习
  11. Cordova原理一
  12. 画五角星中间没有填充_冷军画两个白色五角星,卖出230万,专家大呼:这不是画...
  13. 推荐一个js脚本的字体拟合模型
  14. 应广单片mini-c之$符号的说明
  15. 2019保研Tips:双非推免南京大学
  16. 联想成为梦工厂动画的首选工作站创新合作伙伴
  17. D.MADMAX 记忆化搜索 DAG
  18. 高电平、低电平复位电路
  19. 免费二级域名分发企业备案域名 阿里云备案域名
  20. Orcad Capture CIS出BOM表

热门文章

  1. 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-988 逗志芃的危机
  2. Mysql分表创建索引
  3. GANs有嘻哈:一次学完10个GANs明星模型(附视频)
  4. Angular8.+ 项目引入ngzorro组件nz-month-picker的清空问题
  5. 平面设计PS合成云海中的小舟场景教…
  6. 日系轿车和SUV车型
  7. 系统分析师考试大纲(2004年新版)
  8. 518抽奖软件源码之:主窗口上含对话框时如何最小化
  9. 管理者的工作必须卓有成效
  10. leet209. 长度最小的子数组 滑动窗口