mysql怎么修改字符 mysql怎么修改字符集为gbk

如何修改mysql表字段的字符集如何修改mysql表字段mysql怎么修改字符的字符集
关键字mysql怎么修改字符:字符集gbkutf8开始表W的字符集设置成了gbkmysql怎么修改字符,但是现在的建的表要求字符集为utf8 。于是mysql怎么修改字符:alter table `W` default character set utf8;或者ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;但是发现其中一个字段CONTENT的字符集还是gbk 。于是更改mysql数据库表中某个字段的字符集mysql怎么修改字符 , 修改字段的定义:alter table `W` modify column `CONTENT` varchar(30) character set utf8 not null;
linux下怎么修改mysql的字符集编码可直接进入
mysql
进行更改,具体如下:
1.查找/etc目录下是否有my.cnf文件;
#ls
-l
|
grep
my.cnf
(在/etc下查找是否有my.cnf文件存在)
2.如果没有就要从/usr/share/mysql,拷贝一个到/etc
下,在/usr/share/mysql目录下有五个后缀为.cnf的文件 , 分别是
my-huge.cnf
my-innodb-heavy-4G.cnf
my-large.cnf
my-medium.cnf
my-small.cnf
;从中随便拷贝一个到/etc目录下并将其改为my.cnf文件,我选择的是my-medium.cnf

#cp
/usr/share/mysql/my-medium.cnf
/etc/my.cnf
3.修改my.cnf文件,在该文件中的三个地方加上
default-character-set=utf8([client]
[mysqld]
[mysql])
#vi
/etc/my.cnf
修改如下:(红色为添加部分)
[client]
#password
=
your_password
port
=
3306
socket
=
/var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
port
=
3306
socket
=
/var/lib/mysql/mysql.sock
skip-locking
key_buffer
=
16M
max_allowed_packet
=
1M
table_cache
=
64
sort_buffer_size
=
512K
net_buffer_length
=
8K
read_buffer_size
=
256K
read_rnd_buffer_size
=
512K
myisam_sort_buffer_size
=
8M
default-character-set=utf8
init_connect='SET
NAMES
utf8'
//此行可不加
[mysql]
no-auto-rehash
default-character-set=utf8
保存退出;
4.重起MySQL服务器,使其设置的内容生效
#/etc/init.d/mysql
restart
5.
重新登入mysql;
#
mysql
-u
root
-
p
#(输入密码)
mysql
show
variables
【mysql怎么修改字符 mysql怎么修改字符集为gbk】like
'character_set%'
;
-------------------------- ----------------------------
|
Variable_name
|
Value
|
-------------------------- ----------------------------
|
character_set_client
|
utf8
|
|
character_set_connection
|
utf8
|(都生成了utf8,成功了
哈哈哈)
|
character_set_database
|
utf8
|
|
character_set_filesystem
|
binary
|
|
character_set_results
|
utf8
|
|
character_set_server
|
utf8
|
|
character_set_system
|
utf8
|
|
character_sets_dir
|
/usr/share/mysql/charsets/
|
-------------------------- ----------------------------
mysql启动和停止
操作

可以通过
#/etc/init.d/mysql
[start
|
stop
|
restart](实现启动,停止,重启)
也可以通过
#service
mysql
[start
|
stop
|
restart](实现启动 , 停止,重启)
*********************************
另外:如果在修改字符集前,尝试在数据库中插入中文,那么当修改了字符集后,在你所插入中文的数据库中(在别的数据库中可能没问题) ,
通过show
variables
like
'character_set%'查询的结果可如下:
-------------------------- ----------------------------
|
Variable_name
|
Value
|
-------------------------- ----------------------------
|
character_set_client
|
utf8
|
|
character_set_connection
|
utf8
|
|
character_set_database
|
latin1
|
|
character_set_filesystem
|
binary
|
|
character_set_results
|
utf8
|
|
character_set_server
|
utf8
|
|
character_set_system
|
utf8
|
|
character_sets_dir
|
/usr/share/mysql/charsets/
|
-------------------------- ----------------------------
如何修改MySQL字符集ALTER TABLE `test`
DEFAULT CHARACTER SET=utf8;
小的字符集可以向大的修改,大的不能修改到小的字符集,gbk可以修改到utf8,但是utf8修改到gbk会出现乱码,自己斟酌一下
怎么修改MySQL的字符首先 , MySQL的字符集问题主要是两个概念,一个是Character Sets,一个是Collations,前者是字符内容
及编码,后者是对前者进行比较操作的一些规则 。这两个参数集可以在数据库实例、单个数据库、表、列等四个级
别指定 。
对于使用者来说,一般推荐使用utf8编码来存储数据 。而要解决乱码问题 , 不单单是MySQL数据的存储问题,还
和用户的程序文件的编码方式、用户程序和MySQL数据库的连接方式都有关系 。
首先,MySQL有默认的字符集,这个是安装的时候确定的,在编译MySQL的时候可以通过DEFAULT_CHARSET=
utf8和DEFAULT_COLLATION=utf8_general_ci这两个参数(MySQL5.5版本,5.1版本用--with-charset=
utf8 --with-collation=utf8_general_ci)来指定默认的字符集为utf8,这也是最一劳永逸的办法,这样指定后,
客户端连接到数据库的编码方式也默认是utf8了,应用程序不需要任何处理 。
但是遗憾的是,很多人编译安装MySQL的时候没有指定这两个参数,大多数人更是通过二进制程序的方式安装,那
么这时候MySQL的默认字符集是latin1 。而这时候我们仍然可以指定MySQL的默认字符集,通过my.cnf文件增加
两个参数:
1.在[mysqld]下添加
default-character-set=utf8(mysql 5.5 版本添加character-set-server=utf8)
2.在[client]下添加
default-character-set=utf8
这样我们建数据库建表的时候就不用特别指定utf8的字符集了 。配置文件里的这种写法解决了数据存储和比较的问题
,但是对客户端的连接是没有作用的,客户端这时候一般需要指定utf8方式连接才能避免乱码 。也就是传说总的set
names命令 。事实上,set names utf8命令对应的是服务器端以下几个命令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = xutf8;
但这三个参数是不能写在配置文件my.cnf里的 。只能通过set命令来动态修改 。我们需要的是在配置文件里写好一劳
永逸的办法 。那么这时候 , 是否有在服务端解决问题的办法呢 , 可行的思路是在init_connect里设置 。这个命令在每
个普通用户连接上来的时候都会触发执行 , 可以在[mysqld]部分增加以下一行设置连接字符集:
在[mysqld]下添加:
init_connect = 'SET NAMES utf8'
总结:
1、首选在编译安装MySQL的时候指定两个参数使用utf8编码 。
2、次选在配置文件my.cnf或my.ini设定两个参数 , 同时设置init_connect参数 。
3、第三在配置文件my.cnf或my.ini设定两个参数 , 同时客户端的连接指定set names命令 。
4、在配置文件my.cnf里的client和server处加入default-character-set参数方便管理 。
MySQL如何修改表格的字符集,如何修改某个字段的字符集如果用户想改变表的默认字符集和所有的字符列的字符集到一个新的字符集 , 使用下面的语句:
ALTER
TABLE
tbl_name
CONVERT
TO
CHARACTER
SET
charset_name;警告:上述操作是在字符集中转换列值 。如果用户在字符集(如
gb2312)中有一个列,但存储的值使用的是其它的一些不兼容的字符集(如
utf8),那么该操作将不会得到用户期望的结果 。在这种情况下,用户必须对每一列做如下操作:
ALTER
TABLE
t1
CHANGE
c1
c1
BLOB;
ALTER
TABLE
t1
CHANGE
c1
c1
TEXT
CHARACTER
SET
utf8;
这样做的原因是:从
BLOB
列转换或转换到
BLOB
列没有转换发生 。
如果用户指定以二进制进行
CONVERT
TO
CHARACTER
SET,则
CHAR、VARCHAR

TEXT
列将转换为它们对应的二进制字符串类型(BINARY,VARBINARY,BLOB) 。这意味着这些列将不再有字符集 , 随后的
CONVERT
TO
操作也将不会作用到它们上 。
如果仅仅改变一个表的缺省字符集 , 可使用下面的语句:
ALTER
TABLE
tbl_name
DEFAULT
CHARACTER
SET
charset_name;
DEFAULT是可选的 。当向一个表里添加一个新的列时,如果没有指定字符集,则就采用缺省的字符集(例如当ALTER
TABLE
...
ADD
column) 。
ALTER
TABLE
...
DEFAULT
CHARACTER
SET

ALTER
TABLE
...
CHARACTER
SET
是等价的,修改的仅仅是缺省的表字符集 。
mysql怎么修改字符的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于mysql怎么修改字符集为gbk、mysql怎么修改字符的信息别忘了在本站进行查找喔 。

    推荐阅读