如何解决mysql添加不了不常见的汉字, 如”碁“等等?

如何解决mysql添加不了不常见的汉字, 如”碁“等等?,第1张

有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。

1. check table 和 repair table

登陆mysql 终端:

mysql -uxxxxx -p dbname

check table tabTest

如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:

repair table tabTest

进行修复,修复之后可以在用check table命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。

2. myisamchk, isamchk

其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:

myisamchk tablename.MYI

进行检测,如果需要修复的话,可以使用:

myisamchk -of tablename.MYI

关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。

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

另外可以把下面的命令放在你的rc.local里面启动MySQL服务器前:

[ -x /tmp/mysql.sock ] &&/pathtochk/myisamchk -of /DATA_DIR/*/*.MYI

其中的/tmp/mysql.sock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql/mysql.sock,对于使用源码安装则是/tmp/mysql.sock可以根据自己的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。

需要注意的时,如果你打算把这条命令放在你的rc.local里面,必须确认在执行这条指令时MySQL服务器必须没有启动!检测修复所有数据库(表)

更改数据库安装时的字符编码。打开mysql安装目录,找到my.ini文件,通过使用记事本的方式打开,将这里面的default-character-set=latin1修改成gbk,注意这里面有两处需要修改。

修改数据库实例中的编码,打开data文件夹,找到对应的数据库实例,修改里面的db.opt文件,将字符编码改成gbk如图所示。

修改数据库实例编码还可以通过navicat for mysql客户端直接进行更改,在数据库实例上右键--属性--选择字符编码。

重启数据库。通过cmd命令对数据库进行重启生效。

更改编码中连接串的字符编码,在连接串后面添加&useUnicode=true&characterEncoding=gbk。

测试数据是否正常。再次重新插入数据库数据,就可以看到汉字不会乱码。

有两种方法...你试一下...不行的话加我的QQ

76558882

1.

修改

mysql

安装目录下的

my.ini

修改

default-character-set=latin1

把latin1

改为

gb2312

gbk

注意:

修改两处

CLIENT

SECTION

#

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

#

#

The

following

options

will

be

read

by

MySQL

client

applications.

#

Note

that

only

client

applications

shipped

by

MySQL

are

guaranteed

#

to

read

this

section.

If

you

want

your

own

MySQL

client

program

to

#

honor

these

values,

you

need

to

specify

it

as

an

option

during

the

#

MySQL

client

library

initialization.

#

[client]

port=3306

[mysql]

default-character-set=latin1

//把

latin1

改为

gb2312或

gbk

#

SERVER

SECTION

#

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

#

#

The

following

options

will

be

read

by

the

MySQL

Server.

Make

sure

that

#

you

have

installed

the

server

correctly

(see

above)

so

it

reads

this

#

file.

#

[mysqld]

#

The

TCP/IP

Port

the

MySQL

Server

will

listen

on

port=3306

#Path

to

installation

directory.

All

paths

are

usually

resolved

relative

to

this.

basedir="C:/Program

Files/MySQL/MySQL

Server

5.0/"

#Path

to

the

database

root

datadir="C:/Program

Files/MySQL/MySQL

Server

5.0/Data/"

#

The

default

character

set

that

will

be

used

when

a

new

schema

or

table

is

#

created

and

no

character

set

is

defined

default-character-set=latin1

//将latin1

改为

gb2312

gbk

2.

进入在命令提示符下登录mysql

输入

charset

gb2312

你再尝试使用

insert

into

插入一条记看看...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11393386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存