码迷,mamicode.com
首页 > 数据库 > 详细

8.4、数据库编码(永久生效)

时间:2020-02-16 10:18:44      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:ror   margin   不一致   ase   pac   sql   dep   gbk   creat   


1、查看mysql的建库编码语言:

mysql> show create database lc\G;

*************************** 1. row ***************************

Database: lc

Create Database: CREATE DATABASE `lc` /*!40100 DEFAULT CHARACTER SET latin1 */

#创建的数据库的字符编码集是拉丁文;

1 row in set (0.00 sec)

ERROR:

No query specified

2、如何在创建mysql数据库时指定字符集:

(1)指定创建数据库为gbk的字符集;

mysql> create database lc1 default character set gbk collate gbk_chinese_ci;

Query OK, 1 row affected (0.00 sec)

mysql> show create database lc1\G;

*************************** 1. row ***************************

Database: lc1

Create Database: CREATE DATABASE `lc1` /*!40100 DEFAULT CHARACTER SET gbk */

1 row in set (0.00 sec)

ERROR:

No query specified

(2)指定创建的数据库为utf8的字符集:

mysql> create database lc2 default character set utf8 collate utf8_general_ci;

Query OK, 1 row affected (0.00 sec)

mysql> show create database lc2\G;

*************************** 1. row ***************************

Database: lc2

Create Database: CREATE DATABASE `lc2` /*!40100 DEFAULT CHARACTER SET utf8 */

1 row in set (0.00 sec)

ERROR:

No query specified

3、字符集问题总结:

(1)字符集不一致时数据乱码的主要的问题;

(2)如果是二进制安装mysql:

创建数据库时默认使用的拉丁文;

如果需要改动数据库字符集需要在建库是指定数据库的默认字符集;

(3)如果是编译安装数据库:

在编译参数中不指定数据库字符集参数默认是拉丁文;

如果在编译参数中指定数据库字符集则创建数据库时默认使用的是编译参数中指定的字符集;

如果需要改动数据库字符集需要在建库是指定数据库的默认字符集;

(4)企业中如何创建数据库:

1)根据开发的程序确定字符集(推荐utf8);

编译的时候指定字符集;

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

2)编译的时候没有指定字符集或者指定了和开发程序不同的字符集:

指定字符集创建库即可;

show character set; #查看系统支持的字符集

create database lc1 default character set gbk collate gbk_chinese_ci; #指定gbk字符集;

create database lc2 default character set utf8 collate utf8_general_ci; #指定utf8字符集;

但是数据库必须要支持你指定的编码集,二进制全部支持,编译安装时需要指定

"-DWITH_EXTRA_CHARSETS=all"编译参数;

3)修改my.cnf中指的字符集;

[client]

default-character-set=utf8 #不需要重启mysql服务,客户端;

[mysqld]

character-set-server=utf8 #需要重启mysql服务,服务端;

4)修改表的字符集:

Create Table: CREATE TABLE `student` (

`id` int(16) NOT NULL,

`name` varchar(20) NOT NULL,

`age` int(2) NOT NULL,

`dept` varchar(20) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

8.4、数据库编码(永久生效)

标签:ror   margin   不一致   ase   pac   sql   dep   gbk   creat   

原文地址:https://www.cnblogs.com/LiuChang-blog/p/12315799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!