热搜词
发表于 2008-6-28 16:06:23 | 显示全部楼层 |阅读模式
        安装mysql时可选择编码,如果已经安装过,可以更改文件my.ini(此文件在mysql的安装目录下)中的配制以达到目的;下面是一种最简单最彻底的方法,打开文件找到两处:

一、Windows
1、中止MySQL服务
2、在MySQL的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini即可
3、打开my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
4、启动MySQL服务

此时新建数据库后,数据库目录下有个db.opt文件,内容如下:

  1. default-character-set=utf8
  2. default-collation=utf8_general_ci
复制代码

二、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 &)


---------------------------下面的方法是对旧数据库的默认编码修改-------------------------------------------------
1. 打开C:/Program Files/MySQL/MySQL Server 5.0/my.ini

在[client]下面寻找default-character-set,然后将其值修改为:
default-character-set=utf8    (默认字符集为utf8)
若找不到default-character-set,加上上面一行即可。

[mysqld]同理:
default-character-set=utf8   (默认字符集为utf8)
init_connect='SET NAMES utf8'  (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)



下面语句用于查看编码方式是否已经修改:
mysql> show variables like 'char%';

+————————–+——————————————–+
| Variable_name            | Value                                      |
+————————–+——————————————–+
| character_set_client     | latin1                                     |
| character_set_connection | latin1                                     |
| character_set_database   | gbk                                        |
| character_set_filesystem | binary                                     |
| character_set_results    | latin1                                     |
| character_set_server     | gbk                                        |
| character_set_system     | utf8                                       |
| character_sets_dir       | /mysql/mastermysql50/share/mysql/charsets/ |
+————————–+——————————————–+
8 rows in set (0.03 sec)


附:
对于已经存在了的数据库,可以如下操作使其改变编码方式:
a. 修改MYSQL数据库编码,如果是MYSQL数据库编码不正确: 可以在MYSQL执行如下命令:
ALTER DATABASE test DEFAULT CHARACTER SET utf8;   
以上命令就是将MYSQL的test数据库的编码设为utf8
b. 修改MYSQL表的编码:ALTER TABLE category DEFAULT CHARACTER SET utf8;
以上命令就是将一个表category的编码改为utf8
c. 修改字段的编码:
ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
以上命令就是将MYSQL数据库test表中 dd的字段编码改为utf8


全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-23 05:02 , Processed in 0.166068 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team