mysql创建数据库utf8
检查当前数据库编码。
使用语句:
show
variables
like
‘%character%’;
show
variables
like’%collation%’;
如果不是以上情况,需要将mysql编码设置为utf-8。具体步骤如下:
如果安装mysql时安装了“MySql
Sever
Instance
Configuration
Wizard”,则只需要启动该程序进行相应设置即可。如下面截图中所描述,需要将默认编码设置为utf8
如果没有该程序,需要手动修改mysql编码。
1、
编辑MySql的配置文件
MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,可以搜索,linux下一般是
/etc/my.cnf
--在
[mysqld]
标签下加上以下内容:
default-character-set
=
utf8
character_set_server
=
utf8
注意:如果此标签下已经存在“default-character-set=GBK”类似的内容,只需修改即可。
--在
[mysql]
标签下加上一行
default-character-set
=
utf8
--在
[mysql.server]标签下加上一行
default-character-set
=
utf8
--在
[mysqld_safe]标签下加上一行
default-character-set
=
utf8
--在
[client]标签下加上一行
default-character-set
=
utf8
2、
重新启动MySql服务
Windows可在服务管理器中操作,也可使用命令行:
net
stop
mysql
回车
net
start
mysql
回车
服务名可能不一定为mysql,请按自己的设置
Linux下面可是用
service
mysql
restart
如果出现启动失败,请检查配置文件有没有设置错误
3、
查看设置结果
登录MySql命令行客户端:打开命令行
mysql
–uroot
–p
回车
输入密码
进入mysql后
执行
:show
variables
like
"%
character
%";
另外:
建立数据库时可以使用以下命令:
create
database
app_relation
character
set
utf8;
use
app_relation;
source
app_relation.sql;
修改数据库编码的命令为:
alter
database
app_relation
character
set
utf8;
㈡ mysql 建数据库用什么字符集
mysql创建数据库一般使用的字符集为UTF-8,但具体的要根据实际情况进行选择。
工具:mysql5.6,Navicat Premium
步骤:
1、打开Navicat Premium,双击左侧服务器的树形结构,连接到服务器,这里以localhost为例。
㈢ php创建mysql数据表,怎么选择UTF8字符集
一、转码失败
在数据写入到表的过程中转码失败,数据库端也没有进行恰当的处理,导致存放在表里的数据乱码。
针对这种情况,前几篇文章介绍过客户端发送请求到服务端。
其中任意一个编码不一致,都会导致表里的数据存入不正确的编码而产生乱码。
比如下面简单一条语句:
set @a = "文本字符串";
insert into t1 values(@a);
变量 @a 的字符编码是由参数 CHARACTER_SET_CLIENT 决定的,假设此时编码为 A,也就是变量 @a 的编码。
2. 写入语句在发送到 MySQL 服务端之前的编码由 CHARACTER_SET_CONNECTION 决定,假设此时编码为 B。
3. 经过 MySQL 一系列词法,语法解析等处理后,写入到表 t1,表 t1 的编码为 C。
那这里编码 A、编码 B、编码 C 如果不兼容,写入的数据就直接乱码。
二、客户端乱码
表数据正常,但是客户端展示后出现乱码。
这一类场景,指的是从 MySQL 表里拿数据出来返回到客户端,MySQL 里的数据本身没有问题。客户端发送请求到 MySQL,表的编码为 D,从 MySQL 拿到记录结果传输到客户端,此时记录编码为 E(CHARACTER_SET_RESULTS)。
那以上编码 E 和 D 如果不兼容,检索出来的数据就看起来乱码了。但是由于数据本身没有被破坏,所以换个兼容的编码就可以获取正确的结果。
这一类又分为以下三个不同的小类:
1)字段编码和表一致,客户端是不同的编码
比如下面例子, 表数据的编码是 utf8mb4,而 SESSION 1 发起的连接编码为 gbk。那由于编码不兼容,检索出来的数据肯定为乱码。
2)表编码和客户端的编码一致,但是记录之间编码存在不一致的情形
比如表编码是 utf8mb4,应用端编码也是 utf8mb4,但是表里的数据可能一半编码是 utf8mb4,另外一半是 gbk。那么此时表的数据也是正常的,不过此时采用哪种编码都读不到所有完整的数据。这样数据产生的原因很多,比如其中一种可能性就是表编码多次变更而且每次变更不彻底导致(变更不彻底,我之前的篇章里有介绍)。举个例子,表 t3 的编码之前是 utf8mb4,现在是 gbk,而且两次编码期间都被写入了正常的数据。
3)每个字段的编码不一致,导致乱码和第二点一样的场景。不同的是:非记录间的编码不统一,而是每个字段编码不统一。举个例子,表 c1 字段 a1,a2。a1 编码 gbk,a2 编码是 utf8mb4。那每个字段单独读出来数据是完整的,但是所有字段一起读出来,数据总会有一部分乱码。
三、LATIN1
还有一种情形就是以 LATIN1 的编码存储数据
估计大家都知道字符集 LATIN1,LATIN1 对所有字符都是单字节流处理,遇到不能处理的字节流,保持原样,那么在以上两种存入和检索的过程中都能保证数据一致,所以 MySQL 长期以来默认的编码都是 LATIN1。这种情形,看起来也没啥不对的点,数据也没乱码,那为什么还有选用其他的编码呢?原因就是对字符存储的字节数不一样,比如 emoji 字符 "❤",如果用 utf8mb4 存储,占用 3 个字节,那 varchar(12) 就能存放 12 个字符,但是换成 LATIN1,只能存 4 个字符。
㈣ MYSQL数据库使用UTF-8中文编码乱码的解决办法
1.用phpmyadmin创建数据库和数据表
创建数据库的时候,请将“整理”设置为:“utf8_general_ci”
或执行语句:
复制代码
代码如下:CREATE
DATABASE
`dbname`
DEFAULT
CHARACTER
SET
utf8
COLLATE
utf8_general_ci;
创建数据表的时候:如果是该字段是存放中文的话,则需要将“整理”设置为:“utf8_general_ci”,
如果该字段是存放英文或数字的话,默认就可以了。
相应的SQL语句,例如:
CREATE
TABLE
`test`
(
`id`
INT
NOT
NULL
,
`name`
VARCHAR(
10
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
MYISAM
;
2.用PHP读写数据库
在连接数据库之后:
复制代码
代码如下:$connection
=
mysql_connect($host_name,
$host_user,
$host_pass);
加入两行:
mysql_query("set
character
set
'utf8'");//读库
mysql_query("set
names
'utf8'");//写库
就可以正常的读写MYSQL数据库了。
用的appserv-win32-2.5.10做的环境,装这个包的时候用默认的utf8编码。
在写数据库连接文件时,写成:
$conn
=
mysql_connect("$host","$user","$password");
mysql_query("SET
NAMES
'UTF8'");
mysql_select_db("$database",$conn);
然后在做页面时,注意这句:
复制代码
代码如下:<meta
http-equiv="Content-Type"
content="text/html;
charset=utf-8"
/>
这样不管输入数据库的中文,还是页面显示,就都正常了。
在DW
CS4版里,默认生成的也是utf8页面。
同样的,如果一开始写数据库连接文件时写成:
mysql_query("SET
NAMES
'GBK'");
那页面也要相应变成:
复制代码
代码如下:<meta
http-equiv="Content-Type"
content="text/html;
charset=gb2312"
/>
总结,最后主要是页面编码要统一就可以很方便的解决乱码问题,特别是在mysql_query()这个set
names的设置必须和页面及数据库编码统计一就可以了。
希望这两篇关于UTF-8中文编码乱码的文章,能够更好地帮助大家解决这类问题,希望大家喜欢。
㈤ 如何更改MySQL数据库编码为UTF-8或者GB2312
mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。
网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。
我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来
我们可以通过命令查看数据库当前编码:
mysql> SHOW VARIABLES LIKE 'character%';
发现很多对应的都是latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。
第一阶段:
mysql设置编码命令
[sql]view plain
SETcharacter_set_client=utf8;
SETcharacter_set_connection=utf8;
SETcharacter_set_database=utf8;
SETcharacter_set_results=utf8;
SETcharacter_set_server=utf8;
- 然后mysql> SHOW VARIABLES LIKE 'character%';你可以看到全变为utf8

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 | C:Program FilesMySQLMySQL Server 5.0sharecharsets |
+--------------------------+---------------------------------------------------------+
8 rows in set
㈥ linux mysql 创建数据库 并且指定编码
1、首先在linux终端窗口处输入mysql -u root -p 命令,然后输入root帐户密码连接sql数据库。
㈦ mysql建表的时候设置表里面的字段的字符集是utf-8要怎么设置默认建好后我去mysql里看字符集都是gbk
1、建表时指定字符集utf-8:
CREATE TABLE表名
( `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`content` VARCHAR( 255 ) NOT NULL)
DEFAULT CHARACTER SET = utf8;
2、修改表的字符集为utf-8:
alter table 表名 convert to character set utf8;
(7)mysql创建数据库utf8扩展阅读:
1、创建数据库时设置字符集:
CREATE DATABASE数据库名 CHARACTER SET utf8 COLLATE utf8_general_ci;
注意后面三个单词之间是有下划线的对于每个选项所给定的值,前面没有等号;在第一个选项和第二个选项之间也没有逗号。
2、修改数据库的字符集:
alter database数据库名 character set utf8;
3、显示某数据库字符集设置:
show create database 数据库名;
4、显示某数据表字符集设置:
show create table 表名;
5、修改字段:
alter table 表名 modify column '字段名' varchar(30) character set utf8 not null;
6、添加表字段:
alter table 表名 add column '字段名' varchar (20) character set utf8;
㈧ 怎样在mysql中新建表utf8格式
MYSQL创建utf-8格式的数据库方法:
先mysql进入;
Linux代码 ;
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE ;utf8_general_ci;
eg;
Linux代码 www.2cto.com ;
[root@linuxtest test]# mysql -u root -p ;
Enter password;
Welcome to the MySQL monitor. Commands end with ; or g;
Your MySQL connection id is 5;
Server version: 5.1.30-community MySQL Community Server (GPL) ;
Type 'help;' or 'h' for help. Type 'c' to clear the buffer;
mysql> CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.06 sec) ;
mysql> show databases;
+--------------------+ ;
| Database | ;
+--------------------+ ;
| information_schema | ;
| cacti | ;
| mysql | ;
| test | | ;
+--------------------+ ;
5 rows in set (0.07 sec) ;
这个test库就是utf-8格式的 。