首页 > 编程知识 正文

mysql数据库转换编码,改变mysql数据库编码

时间:2023-12-26 22:40:30 阅读:322782 作者:GIAV

本文目录一览:

mysql 更改数据库的编码

mysql支持中文字段的。我的mysql就是gb2312的编码方式,上面的建表语句能建表。。最简单的方式就是修改配置文件,先关闭mysql的服务。打开mysql的安装目录。里面有个my.ini的。打开它。。将下面的那个charater-set设置为gb2312default-character-set=gb2312还有default-character-set=gb2312修改好这两个设置后。启动服务。搞掂、、、我也是怎么设来的!!

如何解决MySQL表编码转换问题

step

1.将原来的gbk编码的数据库导出为utf8编码的(采用了gzip压缩)

#

/usr/local/mysql/bin/mysqldump

-uroot

-proot

–compatible=mysql40

–default-character-set=utf8

–extended-insert

–force

–add-locks

–add-drop-table

discuz

|

/usr/bin/gzip

-9

/home/ftp/backup/bak_1227.sql.gz

这里起主要作用的就是红色标出来的这两个选项了。

step

2.将网上的备份数据库文件下载到本地,解压

#

gunzip

bak_1227.sql.gz

导入到本地测试库wwwtest(手动创建的时候选的utf8_general_ci编码)中

#

/usr/local/mysql/bin/mysql

-uroot

-proot

wwwtest

/home/ftp/backup/bak_1227.sql

打开phpmyadmin查看一下数据库显示,数据库和表编码类型都是utf8_general_ci了,OK,大功告成。

————————————————————————————

这里需要注意的问题,导出时的文件编码,由于要导入到utf8编码的数据库中,并且导成utf8编码,所以添加参数–default-character-set=utf8,这样的话导出来的数据库备份文件就是utf8格式的文件了.还有另一个参数–compatible=mysql40,这个参数带上后就不会把原数据库中的编码设置导出来,比如我要导出的数据库是gbk编码的,如果不加–compatible=mysql40这个参数,那导出来的文件中创建表的语句中就会带有DEFAULT

CHARSET=gbk,如果这样的话导入数据时,即使数据库是utf8编码的,导入后表的编码也会变成gbk.所以要加–compatible=mysql40这条参数,这样就不会在数据库备份文件中带有DEFAULT

CHARSET=gbk,这样就可以导入到utf8编码的数据库中,而且导入的表也使用的是当前数据库的编码

怎样更改MySQL数据库编码为UTF

如果没有配置好cmd里面的mysql 环境变量,那就在系统高级设置那儿进行MySQL的环境变量设置。

win+R,调出“运行”,输入cmd,回车

登录数据库,

查看数据库

查看数据库字符编码

通过MySQL命令行修改:(编码可选)

mysql set character_set_client=utf8;

mysql set character_set_connection=utf8;

mysql set character_set_database=utf8;

mysql set character_set_results=utf8;

mysql set character_set_server=utf8;

mysql set character_set_system=utf8;

mysql set collation_connection=utf8;

mysql set collation_database=utf8;

mysql set collation_server=utf8;

当然还有:

修改数据库的字符集mysqluse mydb

mysqlalter database mydb character set utf8;

创建数据库指定数据库的字符集

mysqlcreate database mydb character set utf8;

如何对mysql中的字符进行编码转换

首先,到mysqlbin

下面,利用mysqldump这个工具,执行以下命令:

mysqldump

--u=root

-p

--default-character-set=latin1

--set-charset=utf8

--skip-opt

--result-file=c:mytable.sql

mydb

mytable

其中:root

为数据库登录名,

latin1

为源表(就是想进行转码的表)的编码,

utf8

为想转换成的编码,

c:mytable.sql

为导出的数据的存放文件(临时用),

mydb是源表所属的数据库(schema),mytable

就是源表名了

执行这条命令,会提示输入密码,输入正确的密码以后,就开始导出数据了。等到数据全部导出以后,可以用ue等工具打开,这时可以看到这些数据的编码已经转变了。

然后需要对这个文件进行一点点更改。在文件的最开头有一个建表语句。类似于:

Java代码

CREATE

TABLE

`mytable`

(

`tableid`

bigint(20)

unsigned

NOT

NULL,

`c1`

int(10)

unsigned

NOT

NULL

default

'0',

`c2`

int(10)

unsigned

NOT

NULL

default

'0',

PRIMARY

KEY

(`tableid`)

);

注意看最后的分号,缺少了一点点东西:engine=myisam

DEFAULT

CHARSET=utf8

engine

charset

的意义地球人都知道啊...

将这一段加进去。结果可能是这样:

Java代码

CREATE

TABLE

`mytable`

(

`tableid`

bigint(20)

unsigned

NOT

NULL,

`c1`

int(10)

unsigned

NOT

NULL

default

'0',

`c2`

int(10)

unsigned

NOT

NULL

default

'0',

PRIMARY

KEY

(`tableid`)

)

engine=myisam

DEFAULT

CHARSET=utf8;

其中engine

charset

改成期望的东西,如:innodb

gbk

等...

保存文件。(如果是用UE等工具即使文件大也不会等太久,如果用记事本打开的……恭喜你!

这样就成功了一半了,剩下的工作只需要导入这个转好码的数据了。

将原来的那个表改名,一是为了备份,二是防止导入的时候说表已经存在。

然后还是进入mysqlbin

下面,运行:

Java代码

mysql

-u

root

-p

mydb

c:mytable.sql

输入密码以后程序开始工作,一段时间以后,新表就出来咯...

如何更改MySQL数据库编码为UTF-8或者GB2312?

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

网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。

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

我们可以通过命令查看数据库当前编码:

mysql SHOW VARIABLES LIKE 'character%';

发现很多对应的都是 latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。

第一阶段:

mysql设置编码命令

[sql] view plain copy

SET character_set_client = utf8;

SET character_set_connection = utf8;

SET character_set_database = utf8;

SET character_set_results = utf8;

SET character_set_server = utf8;

    然后 mysql SHOW VARIABLES LIKE 'character%'; 你可以看到全变为 utf8 

但是,这只是一种假象

此种方式只在当前状态下有效,当重启数据库服务后失效。

所以如果想要不出现乱码只有修改my.ini文件,

从my.ini下手(标签下没有的添加,有的修改)

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

default-character-set=utf8

以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。

然后重启mysql,执行

mysql SHOW VARIABLES LIKE 'character%';

确保所有的Value项都是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

注意  该配置| character_set_server     | latin1 无法设置成UTF8   交互时候仍然会出现乱码。

第二阶段:找到下面这东东

X:%path%MySQLMySQL Server 5.0binMySQLInstanceConfig.exe

重新启动设置,将默认编码设置为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

mysql数据库怎么改它的字符集编码???

在Unix下,可以编辑my.cnf文件进行编码修改,Windows下可以直接用Mysql Server Instance Config Wizard 进行设置。

在linux下修改3个 my.cnf 中 /etc/mysql/my.cnf 文件

找到[client] 在下面添加

default-character-set=utf8 默认字符集为utf8

再找到[mysqld] 添加

default-character-set=utf8 默认字符集为utf8

init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

修改好后,重新启动mysql 即可,查询一下show variables like 'character%';

此方法用于标准mysql版本同样有效,对于/etc/my.cnf文件,需要从mysql/support-files的文件夹复制 my-large.cnf 到 /etc/my.cnf 。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。