mysql字符怎么修改 如何修改mysql的字符集

如何修改MySQL字符集ALTER TABLE `test`
DEFAULT CHARACTER SET=utf8;
小的字符集可以向大的修改,大的不能修改到小的字符集,gbk可以修改到utf8,但是utf8修改到gbk会出现乱码,自己斟酌一
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.cnfmy-innodb-heavy-4G.cnfmy-large.cnfmy-medium.cnfmy-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/mysqlrestart
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如何修改表格的字符集,如何修改某个字段的字符集如果用户想改变表mysql字符怎么修改的默认字符集和所有的字符列的字符集到一个新的字符集,使用下面的语句mysql字符怎么修改:
ALTER
TABLE
tbl_name
CONVERT
TO
CHARACTER
SET
charset_name;警告mysql字符怎么修改:上述操作是在字符集中转换列值 。如果用户在字符集(如
gb2312)中有一个列,但存储的值使用的是其它的一些不兼容的字符集(如
utf8) , 那么该操作将不会得到用户期望的结果 。在这种情况下,用户必须对每一列做如下操作mysql字符怎么修改:
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字符怎么修改,MySQLmysql字符怎么修改的字符集问题主要是两个概念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文件增加
两个参数mysql字符怎么修改:
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命令对应的是服务器端以下几个命令mysql字符怎么修改:
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 更改数据库字符编码的方法mysql如何更改数据库字符编码mysql字符怎么修改?借助客户端工具很容易就可以更改mysql字符怎么修改了mysql字符怎么修改,下面来看一下 。
打开navicat客户端工具mysql字符怎么修改,在左边找到要更改mysql字符怎么修改的数据库 。
右键点击这个数据库,在菜单上点击数据库属性选项 。
在弹出的属性窗口上,点击默认字符集下的下拉框 。
在弹出的下拉选项里,点击选中要使用的字符集就行了,比如选择常用的utf8字符集,点击ok按钮就行了 。
【mysql字符怎么修改 如何修改mysql的字符集】关于mysql字符怎么修改和如何修改mysql的字符集的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读