mysql 字符编码设置

安装mysql时如果字符编码为默认值latin1,则需要修改为utf8以便支持中文数据。

命令如下:

1、显示数据库字符集

mysql> show create database test;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)

2、显示数据表字符集

mysql> show create table t3;
+-------+----------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------------------------------------------+
| t3 | CREATE TABLE `t3` (
`name` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+----------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

3、修改数据表字符集编码

修改数据表的编码

mysql> alter table t4 default character set utf8;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> show create table t4;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t4 | CREATE TABLE `t4` (
`name` varchar(10) CHARACTER SET latin1 DEFAULT NULL,
`sex` varchar(5) CHARACTER SET latin1 DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

修改某个字段编码

mysql> alter table t4 change name name varchar(20) character set utf8;
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> show create table t4;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------+
| t4 | CREATE TABLE `t4` (
`name` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
`sex` varchar(5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

修改整个数据表的字符集编码,包括数据表和字段

mysql> alter table t4 convert to character set utf8 collate utf8_general_ci;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> show create table t4;
+-------+-----------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------------------------------------------+
| t4 | CREATE TABLE `t4` (
`name` varchar(10) DEFAULT NULL,
`sex` varchar(5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

collate、collation 即比对方法。用于指定数据集如何排序,以及字符串的比对规则。可以由show collation命令查看mysql支持的所有比对规则。例如:utf8_general_ci 中 ci 是 case insensitive 的缩写,代表大小写不敏感;cs 是 case sensitive 的缩写,代表大小写是敏感的。

4、修改数据库默认字符集编码

mysql> alter database test default character set utf8;
Query OK, 1 row affected (0.00 sec)

mysql> show create database test;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)

5、修改mysql默认字符集编码

[mysqld]下添加:

character-set-server=utf8

collation-server=utf8_general_ci

然后重启mysql服务,输入命令查询当前字符集编码是否正确

mysql> show variables like ‘character%‘;
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

时间: 2024-08-25 01:20:56

mysql 字符编码设置的相关文章

mysql字符编码设置

1.显示当前编码信息 mysql>show variables like '%character%' +--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | utf8 || character_set_connection |

关于mysql字符编码设置

在mysql中插入数据一直显示是???乱码,网上很多人说的试了都不对,后来经过大量查询资料,将解决方案写在下面,不同的版本有不同的解决方案吧.我的数据库版本(5.5.40) [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci init-connect='SET NAMES utf8′ character-set-serv

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

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

如何修改mysql字符编码

如何修改mysql字符编码 说明:mysql字符编码修改有几种方法,直接修改配置文件,也可以通过命令的方式,此处只介绍修改配置文件的方法. 一. 检查mysql数据库的编码 输入如下sql语句执行,并得到结果 mysql> show variables like 'character\_set\_%'; +--------------------------+--------+ | Variable_name | Value | +--------------------------+-----

spring字符编码设置

<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter   </filter-class>   <init-param> <param-name>encoding</param-name> <param-value>U

修改mysql字符编码出现Job failed to start解决办法

从网上找到如下资料: $sudo gedit /etc/mysql/my.cnf [client]下添加: default-character-set=utf8 [mysqld]下添加: default-character-set=utf8 然后保存退出 $ /etc/init.d/mysql restart 结果出现了: Since the script you are attempting to invoke has been converted to an Upstart job, you

java/mysql字符编码

碰到java/mysql字符编码问题,后来发现是utf-8编码相关问题, 最开始怀疑是在java springmvc相关框架处理中出现的错误,花费了很多时间去查找.这是思维的狭隘处,应该在整理理一遍,排除变量的方式,了解问题在哪. 幸好有另一台测试机及数据库,在该机器上部署的没有问题. 定位在本机的数据库上. 参考http://my.oschina.net/linland/blog/32525 http://blog.csdn.net/zhaozetu/article/details/86813

MySQL基础 - 编码设置

刚开始工作的时候,在工作中遇到的与数据库相关的问题,多半跟编码有关,总结一下数据库编码的设置. 字符集 查看数据库支持的字符集: mysql> SHOW CHARACTER SET; 从图中可以看到数据库中可用的字符集以及每个字符集的描述和默认的校对. 校对:在一个字符集中对字符的比对规则. 查看所支持的校对的完整列表. mysql> SHOW COLLATIONS; 从中可以看到,有的字符集不止一种校对,例如latin1对不同的欧洲语言有几种校对,而且许多校对出现两次,一次区分大小写(由_c

MySQL字符编码

-- 创建数据库时,设置数据库的编码方式 -- CHARACTER SET:指定数据库采用的字符集,utf8不能写成utf-8-- COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为utf8_general_ci(通过show character set查看)drop database if EXISTS dbtest;create database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci; -- 修改数据库编码alt