如何修改MySQL字符集

作者&投稿:春闻 (若有异议请与网页底部的电邮联系)
如何修改MySQL的字符集~

  修改mysql的默认字符集是通过修改它的配置文件来实现的。一般分两种情况:  Windows平台  windows下的mysql配置文件是my.ini,一般在c:windowsmy.ini或者c:winntmy.ini可以直接在这个文件里面加上  default-character-set=gbk #或gb2312,big5,utf8  然后重新启动mysql  service mysql restart  或  /etc/init.d/mysql restart  或用其他方法重新启动,就生效了。  Unix平台  linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:  find / -iname my.cnf  在这个文件里面加上  default-character-set=gbk #或gb2312,big5,utf8  然后重新启动mysql  net stop 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方式连接才能避免乱码。也就是传说总的setnames命令。事实上,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的字符集问题主要是两个概念,一个是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参数方便管理。


SQL语言中的修改语句ALTER和UPDATE有何区别?
1、作用区别:ALTRT用来修改基本表,是对表的结构进行操作,比如对字段的增加、删除、修改类型 UPDATE用来修改表中的数据,修改某一行某一列的值 2、从本质上区分:Alter是数据定义语言(Data difinition Language),在修改表的结构时,不需要Commit和Rollback。Update是数据数据操作语言(Data manipulation ...

SQL语言中的修改语句ALTER和UPDATE有何区别?
1、Alter是数据定义语言(Data difinition Language),在修改表的结构时,不需要Commit和Rollback。2、Update是数据数据操作语言(Data manipulation Language),在修改数据值时,需要Commit和Rollback,否则提交的结构无效。

mysql数据库在安装时默认的字符集编码为utf8但是为什么向数据库插入...
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,如 default-character-set = utf8 character_set_server = utf8 修改完后,重启mysql的服务,service mysql restart 使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8 +---+---+ | Variable...

MySQL无法支持应该如何解决mysql不支持怎么解决
在解决MySQL无法支持某些功能时,我们应该注意备份数据,避免数据丢失。备份数据是非常重要的,因为在解决问题时,可能会对MySQL进行修改,导致数据丢失或数据出现问题。因此,在解决MySQL问题之前,一定要进行备份。六、其他解决方案 除了以上方法外,还有一些其他的解决方案可供选择。例如,使用其他的数据库系统...

浅谈MySQL数据库备份的几种方法
如果担心数据会发生重复,可以增加 REPLACE关键字来替换已有记录或者用 IGNORE 关键字来忽略他们。4.启用二进制日志(binlog)采用binlog 的方法相对来说更灵活,省心省力,而且还可以支持增量备份。启用binlog 时必须要重启 mysqld。首先,关闭 mysqld,打开 my.cnf,加入以下几行:server-id = 1log-bin = binlog...

如何开启mysql中的严格模式
1.可以通过执行SQL语句来开启,但是只对当前连接有效,下面是SQL语句:复制代码代码如下:set sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";2.通过修改MySQL的配置文件,在配置文件中查找sql-mode,将此行修改成为:复制代码代码如下:sql-mode="STRICT_TRANS_TABLES,NO_...

无法启动mysql服务,发生错误1067的解决办法
进入MySql的安装文件夹找到my.ini ;里面有一句:default-storage-engine=INNODB改成MYISAM;再去开启MySql服务就能够顺利开启了。MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS...

实现MySQL数据库的备份与还原的几种方法
create testdb% mysqldump --opt testdb | mysql -h remote_host testdb另外还可通过ssh远程调用服务器上的程序,如:% ssh remote_host mysqladmin create testdb% mysqldump --opt testdb | ssh remote_host mysql testdb 通过直接拷贝系统文件的方式备份数据库,在备份时,要确保没有人对数据库进行修改操作。

MySQL查看记录何时被更改
这个我们只需要先准备好数据库,作为数据的存储,然后再写一套程序作为修改程序。最终我们再将另一套程序给写出来,就是查询数据库的一些变动形式的数据,然后再将这套数据程序和修改语句进行连接,最终当第1个程序修改参数的时候,第2个程序就会被记录下来,但是不影响数据库里面数据的变更。

怎么配置mysql 才可以用http:\/\/localhost\/phpmyadmin进入呢
1、打开Apache安装目录下conf文件夹中的httpd.conf文件,将DocumentRoot和Directory值设为"E:\/xampp\/htdocs"(我的XAMPP安装在E盘)。2、打开XAMPP控制界面,点击【start】按钮开启Apache和MySQL服务。3、当出现如图所示信息时,说明Apache和MySQL服务已成功启动。如果启动不成功,可能是80等端口被占用,修改...

头屯河区19718815887: 如何修改MySQL的字符集 -
洪荣三乐: 修改mysql的默认字符集是通过修改它的配置文件来实现的.一般分两种情况: Windows平台 windows下的mysql配置文件是my.ini,一般在c:windowsmy.ini或者c:winntmy.ini可以直接在这个文件里面加上 default-character-set=gbk #或gb2312,...

头屯河区19718815887: 如何修改MySQL字符集 -
洪荣三乐:首先,MySQL的字符集问题主要是两个概念,一个是Character Sets,一个是Collations,前者是字符内容 及编码,后者是对前者进行比较操作的一些规则.这两个参数集可以在数据库实例、单个数据库...

头屯河区19718815887: 如何修改mysql表中数据字符集 -
洪荣三乐: 如何修改mysql表中数据字符集1. 修改my.ini配置文件(MySQL配置文件) character_set_server = utf8 #设置字符集2. 修改数据库字符集 alter database 数据库名 character set utf8;3. 重启mysql数据库

头屯河区19718815887: 怎么修改mysql数据库的字符集 -
洪荣三乐: 1 如果没有配置好cmd里面的mysql 环境变量,那就在系统高级设置那儿进行MySQL的环境变量设置.2 win+R,调出“运行”,输入cmd,回车3 登录数据库,4 查看数据库5 查看数据库字符编码6 通过MySQL命令行修改:(编码可选) ...

头屯河区19718815887: 如何修改MySQL的字符集 -
洪荣三乐: ALTER TABLE `test`DEFAULT CHARACTER SET=utf8;小的字符集可以向大的修改,大的不能修改到小的字符集,gbk可以修改到utf8,但是utf8修改到gbk会出现乱码,自己斟酌一下

头屯河区19718815887: 如何修改mysql数据库字符集 -
洪荣三乐: 方法/步骤如果没有配置好cmd里面的mysql 环境变量,那就在系统高级设置那儿进行MySQL的环境变量设置.win+R,调出“运行”,输入cmd,回车登录数据库,查看数据库查看数据库字符编码通过MySQL命令行修改:(编码可选) ...

头屯河区19718815887: 如何修改mysql库所有 表的字符集 -
洪荣三乐: 修改数据库字符集:ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...]; 把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:ALTER TABLE tbl_name CONVERT TO ...

头屯河区19718815887: mysql数据库怎么改它的字符集编码??? -
洪荣三乐: 在Unix下,可以编辑my.cnf文件进行编码修改,Windows下可以直接用Mysql Server Instance Config Wizard 进行设置.在linux下修改3个 my.cnf 中 /etc/mysql/my.cnf 文件找到[client] 在下面添加default-character-set=utf8 默认字符集为utf8再找...

头屯河区19718815887: 如何修改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;

头屯河区19718815887: mysql怎么修改数据库的字符集在命令行 -
洪荣三乐: SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网