首页数据库数据库编码,mysql新建的数据库默认是什么编码

数据库编码,mysql新建的数据库默认是什么编码

编程之家2023-10-22111次浏览

大家好,今天给各位分享数据库编码的一些知识,其中也会对mysql新建的数据库默认是什么编码进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

数据库编码,mysql新建的数据库默认是什么编码

mysql如何查看数据库编码

本文内容:本文介绍了在控制台下,使用命令的方式查看mysql数据库的编码。

1.首先连接数据库。

在cmd下输入

>mysql-h数据库地址-u用户名-p密码

2.连接数据库完成后

使用 status命令查看数据库的编码方式:

数据库编码,mysql新建的数据库默认是什么编码

mysql> status;

--------------

C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql.exe Ver 14.14 Distrib 5.6.21,

for Win32(x86)

Connection id: 1320

Current database:

数据库编码,mysql新建的数据库默认是什么编码

Current user: rdps@10.118.44.29

SSL: Not in use

Using delimiter:;

Server version: 5.5.28 MySQL Community Server(GPL)

Protocol version: 10

Connection: 10.118.46.4 via TCP/IP

Server characterset: latin1

Db characterset: latin1

Client characterset: gbk

Conn. characterset: gbk

TCP port: 3306

Uptime: 2 days 1 hour 28 min 49 sec

Threads: 10 Questions: 680380 Slow queries: 0 Opens: 167265 Flush tables: 2

Open tables: 4 Queries per second avg: 3.819

--------------如果想看某一个数据库的编码方式,首先要用use数据库名切换数据库。不知道有哪些数据库,可以使用show databases;

或者使用

<span style="font-size:14px;">mysql> show variables like'char%';

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

---+

| Variable_name| Value

|

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

---+

| character_set_client| gbk

|

| character_set_connection| gbk

|

| character_set_database| latin1

|

| character_set_filesystem| binary

|

| character_set_results| gbk

|

| character_set_server| latin1

|

| character_set_system| utf8

|

| character_sets_dir|/usr/local/mysql-5.5.28-linux2.6-i686/share/charset

s/|

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

---+

8 rows in set(0.00 sec)</span>更多相关教程请访问 MySQL视频教程

mysql新建的数据库默认是什么编码

mysql创建数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。

我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来

很多mysql数据库工具(除了phpmyadmin)都不支持创建时指定数据库编码,可以改my.ini来解决这个问题,但是需要重新启动mysql,不过用下面的语句会更有效

GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

注意:如果不是通过my.ini配置文件设置的内容,只在当前状态下有效,当重启数据库服务后失效。所以如果想要不出现乱码只有修改my.ini文件,数据库编码可以在创建数据库时候指定UTF8,如下:

|character_set_client| utf8|

| character_set_connection| utf8|

| character_set_database| utf8|

| character_set_filesystem| binary|

| character_set_results| utf8|

| character_set_server| latin1|

| character_set_system| utf8

mysql数据库表里中文乱码应该选哪种编码

数据库中关于字符集的种类有很多,个人建议,数据库字符集尽量使用utf8(utf-8),以使你的数据能很顺利的实现迁移,因为utf8字符集是目前最适合于实现多种不同字符集之间的转换的字符集,尽管你在命令行工具上无法正确查看数据库中的内容,我依然强烈建议使用utf8作为默认字符集.如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束对编程有影响的主要是客户端字符集和数据库字符集(还有一个服务器字符集,不知道干什么用的),数据库中常用的操作就是保存数据和读取数据,在这过程中,乱不乱码和数据库字符集貌似没有什么关系。我们只要保证写入时选择的字符集和读取时选择的字符集一致,即只需保证两次操作的客户端字符集一致即可。 \x0d\x0a在MySQL的客户端上执行一次查询的过程一般是,在客户端的提示符后面输入一条SQL语句,回车,然后终端显示出查询的结果。这个过程中,只有终端和三个MySQL的系统变量指定了正确的字符集,才能保证我们将一个正确的SQL语句送到服务器,然后服务器返回正确的结果,并且在终端正确显示。 \x0d\x0a三个MySQL的系统变量是: \x0d\x0a1. character_set_client,终端字符集,告诉Server客户端提交的SQL语句的编码格式 \x0d\x0a2. character_set_connection,连接字符集,是服务器翻译SQL语句时用到的编码格式 \x0d\x0a3. character_set_results,返回的结果集的字符集,是服务器返回结果集之前把结果集转换成的编码格式 \x0d\x0a在MySQL终端通过执行命令 show variables like‘char%’可以查看这几个变量的值。这三个变量通常都设定为同一种字符集,用命令set names [charset name]就可以修改这三个变量的值。一般来说,只要你设定了能够表示你的数据的字符集,你查询的结果都可以在终端正确显示。 \x0d\x0a举个例子,使用的表t1是utf8编码,表中的字段c1继承了这个编码,表创建如下 \x0d\x0amysql>create table t1( c1 text not null) character set utf8; \x0d\x0a用的字符是汉字“范”,gbk编码为B7 B6,utf8编码为E8 8C 83 \x0d\x0a用下面的SQL语句插入数据 \x0d\x0amysql>insert into t1 values(‘范’); \x0d\x0aa)如果终端设置为utf8,并且执行了 set names utf8,那么插入到数据库中的就是“范”这个字的utf8编码,这个过程中MySQL不需要做编码转换。写入数据库的内容可以通过执行 select hex( c1) from t1得到数据的十六进制编码来验证。 \x0d\x0a\x0d\x0ab)如果终端设置为 utf8,并且执行了set names gbk,那么执行完这个插入操作后,写入的二进制数据是E9 91 BC,这是“汉字“锣”的utf8编码。这是因为,终端输入的“范”用的是utf8编码,而服务器以为终端发送过来的内容是gbk编码,所以在向t1表中插入的时候进行了一次gbk到utf8的转换,结果当然是错误的。 \x0d\x0a\x0d\x0ac)如果终端设置为gbk,并且执行了set names gbk,那么执行完插入操作后,写入t1的依然是“范”这个字的utf8编码。插入过程中,终端输入的是“范”的gbk编码B7 B6,服务器被告知终端发过来的SQL语句是gbk编码(由character_set_client指定),所以在插入数据前做了一次gbk到utf8的编码转换。 \x0d\x0a\x0d\x0ad)如果终端设置为gbk,并且执行了set names utf8,那么执行完插入操作后,MySQL会报出一个数据被截断的警告。实际上,输入终端的是“范”这个字符的gbk编码B7 B6,而服务器被告知客户端发过来的SQL语句是utf8编码,所以在执行过程中没有做转码,直到插入数据的时候,发现B7 B6不符合utf8的编码规则,给出了警告信息,实际插入的数据是3F 3F,也就是两个问号。 \x0d\x0a\x0d\x0a查询的时候是同样的道理,MySQL也是根据set names设定的字符集来对返回给客户端的结果集做相应的编码转换,如果转换的结果和终端显示的字符集一致,就能正确显示,如果不一致就是乱码。 \x0d\x0a\x0d\x0a结论是,只要终端的字符集和set names指定的字符集一致就可以让MySQL在处理过程中执行正确的转码并且正确地显示。 \x0d\x0a\x0d\x0a另外,如果通过程序操作MySQL数据库,那么也需要事先执行set names命令来指定程序希望输出的字符集。比如,用程序从一个utf8编码的数据库向另外一个gbk编码的数据库进行数据迁移,在选取源数据库数据之前,需要执行set names gbk,才能取到gbk编码的数据。

怎么查看mysql的数据库编码格式

1、查看数据库编码格式

mysql>showvariableslike'character_set_database'

2、查看数据表的编码格式

mysql>showcreatetable<表名>;

3、创建数据库时指定数据库的字符集

mysql>createdatabase<数据库名>charactersetutf8;

4、创建数据表时指定数据表的编码格式

createtabletb_books(

namevarchar(45)notnull,

pricedoublenotnull,

bookCountintnotnull,

authorvarchar(45)notnull)defaultcharset=utf8;

5、修改数据库的编码格式

mysql>alterdatabase<数据库名>charactersetutf8;

6、修改数据表格编码格式

mysql>altertable<表名>charactersetutf8;

7、修改字段编码格式

mysql>altertable<表名>change<字段名><字段名><类型>charactersetutf8;

mysql>altertableuserchangeusernameusernamevarchar(20)charactersetutf8notnull;

好了,文章到此结束,希望可以帮助到大家。

qt连接数据库 QT中怎样连接MYsql数据库,远程连接数据库等linux时间同步服务器?如何使两台linux服务器时间同步