2.cp /etc/my.cnf /etc/my.cnf.bak,修改前做备份,这是个好习惯。
修改my.cnf或my.ini(只有修改配置文件,并重启服务器,才能永久生效)
vi /etc/my.cnf
在[client]下添加,client为控制客户端的,没试过,没有的可以不需要加。
default-character-set=utf8
在[mysqld]下添加,mysqld为控制服务器端的,改过了,OK。
default-character-set=utf8
3.service mysqld restart,重启。
4.show variables like '%char%'查看。
如何修改mysql表字段的字符集关键字:字符集gbkutf8开始表W的字符集设置成了gbk,但是现在的建的表要求字符集为utf8。于是:alter table `W` default character set utf8或者ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name但是发现其中一个字段CONTENT的字符集还是gbk。于是更改mysql数据库表中某个字段的字符集,修改字段的定义:alter table `W` modify column `CONTENT` varchar(30) character set utf8 not null
如果用户想改变表的默认字符集和所有的字符列的字符集到一个新的字符集,使用下面的语句:ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name警告:上述 *** 作是在字符集中转换列值。如果用户在字符集(如 gb2312)中有一个列,但存储的值使用的是其它的一些不兼容的字符集(如 utf8),那么该 *** 作将不会得到用户期望的结果。在这种情况下,用户必须对每一列做如下 *** 作:ALTER TABLE t1 CHANGE c1 c1 BLOBALTER 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_nameDEFAULT是可选的。当向一个表里添加一个新的列时,如果没有指定字符集,则就采用缺省的字符集(例如当ALTER TABLE ... ADD column)。ALTER TABLE ... DEFAULT CHARACTER SET 和 ALTER TABLE ... CHARACTER SET 是等价的,修改的仅仅是缺省的表字符集。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)