mysql 汉字_让MySQL支持中文
这两天在学习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支持中文相关推荐
- MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串
MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音 一.MySQL创建函数 1.语法 CREATE FUNCTION fun_name([paramName type , ...
- mysql默认编码改为gbk_查看改mysql编码方式让它支持中文(gbk或者utf8)
MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码改为gbk或者utf8. 1.需要以root用户身份登录才可以查看数据库编码方式(以root用户身份登录的命令为:> ...
- c# mysql 汉字乱码_c#+mysql 中文乱码
一.错误读出 现象:一个已经存在数据的MySQL数据库,该数据库的数据用系统中其它软件.网页查看均正常,使用MySQLcc之类的客户端查看也正常,可是在新写的网页中总是显示乱码. 分析:其它系统都可以 ...
- mysql整备_【mysql】使用xtrabackup在线增量备份及恢复数据库
一.Percona Xtrabackup 简介 1.Xtrabackup bin目录文件 介绍 1)innobackupex innobackupex 是xtrabackup的一个符号链接 . in ...
- xshell安装mysql步骤_数据库Mysql与禅道安装
一.Linux上搭建禅道 Mysql 是关系型数据库管理系统 1.下载安装包:将安装包直接解压到/opt目录下,不要 解压到别的目录在拷贝到/opt/,因为这样会导致文件的所有者和读写权限改变 2.解 ...
- 建立唯一索引后mysql策略_【MySQL】MySQL索引背后的之使用策略及优化【转】
另外很不错的对于索引及索引优化的文章: 索引的使用 示例数据库 为了讨论索引策略,需要一个数据量不算小的数据库作为示例.本文选用MySQL官方文档中提供的示例数据库之一:employees.这个数据库 ...
- mysql 知识_关于mysql基础知识的介绍
一.启动与退出1.进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可.此时的提示符是:mysql> 或打开终端,输入SQL ...
- mysql 显示表_显示MYSQL表信息的方法
MYSQL表信息的查看方法是我们经常要实现的功能,下面就为您介绍显示MYSQL表信息的方法,如果您对MYSQL表信息方面感兴趣的话,不妨一看. 在用mysql时(show tables),有时候需要查 ...
- shell实行mysql语句_【Mysql】shell运行mysql的sql语句_MySQL
bitsCN.com [Mysql]shell运行mysql的sql语句 shell本身是一种脚本语言,所以不能像java一样通过api去连接数据库.shell还是要借助mysql本身的一些运行脚本才 ...
最新文章
- Microsoft Dynamics CRM 2013 试用之系统篇 正式安装 Microsoft Dynamics CRM Server 2013
- 错误请联系管理员文件 index.php,帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法...
- python3 enumerate()函数笔记
- MySQL常用存储引擎
- Java类加载器( 死磕9)
- k8s核心技术-Controller(statefulSet)_部署有状态应用---K8S_Google工作笔记0033
- 物联网99%是中小企业 引发赚快钱担忧
- Android中activity的生命周期
- 【编译器】VSCode配置Go语言开发环境
- ElasticSearch - 学习
- Cordova原理一
- 画五角星中间没有填充_冷军画两个白色五角星,卖出230万,专家大呼:这不是画...
- 推荐一个js脚本的字体拟合模型
- 应广单片mini-c之$符号的说明
- 2019保研Tips:双非推免南京大学
- 联想成为梦工厂动画的首选工作站创新合作伙伴
- D.MADMAX 记忆化搜索 DAG
- 高电平、低电平复位电路
- 免费二级域名分发企业备案域名 阿里云备案域名
- Orcad Capture CIS出BOM表