mysql怎么改字符 mysql怎么改字符集

MySQL5.6.25安装版怎样调整字符集MySQL的默认编码是Latin1,不支持中文 , 那么如何修改MySQL的默认编码呢 , 下面以UTF-8为例来说明
需要注意的是,要修改的地方非常多,相应的修改方法也很多 。下面是一种最简单最彻底的方法:
一、Windows
1、中止MySQL服务
2、在MySQL的安装目录下找到my.ini , 如果没有就把my-medium.ini复制为一个my.ini即可
3、打开my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8 , 保存并关闭
4、启动MySQL服务
二、Linux
1、中止MySQL服务(bin/mysqladmin -u root shutdown)
2、在/etc/下找到my.cnf , 如果没有就把MySQL的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可
3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
4、启动MySQL服务(bin/mysqld_safe )
如何修改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 , 这也是最一劳永逸的办法 , 这样指定后 ,
客户端连接到数据库的编码方式也默认是utf8mysql怎么改字符了,应用程序不需要任何处理 。
但是遗憾的是,很多人编译安装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的字符集mysql怎么改字符了 。配置文件里的这种写法解决了数据存储和比较的问题
,但是对客户端的连接是没有作用的,客户端这时候一般需要指定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) 。
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
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中怎么设置字符集方法1:通过客户端修改表字段的默认字符集
打开SQLyog客户端,连接数据库如下图所示,点击connection 按钮 连接数据库
我的数据库名称为edu,然后我随意找到数据库中test2表,右键-----》Alter Table
如果安装数据库的 时候 没有选择字符集设置,那么mysql数据库默认为latin1,在箭头部分选择utf8字符集
方法2:用数据库命令修改字符集
首先查看当前数据库字符集,在命令框中执行如下命令:show variables like 'character_set_%';
查看字符集排序设置,执行命令:show variables like 'collation_%';
修改服务器级别字符集,执行命令:
1,临时修改:SET GLOBAL character_set_server=utf8;
修改表级别,命令如下:ALTER TABLE table_name DEFAULT CHARSET utf8;
修改数据库级别,命令如下:use edu(换成你要修改的数据库名 , 在这里我的数据库为edu),,然后执行命令:alter database edu character set utf-8;
或者修改mysql的my.ini文件中的字符集键值
[mysql]
[mysqld]
重启mysql
【mysql怎么改字符 mysql怎么改字符集】关于mysql怎么改字符和mysql怎么改字符集的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读