RainbowBridg
===========================================================
数据升级到5.1所遇到的问题
===========================================================

这回数据库升级遇到了一下问题:

我们的数据库原来是mysql3.23.58想升级到5.1,因为这是大版本的升级,不能使用tar之类的来移植,所以只能用mysqldump来做,但出现了下面的问题

一. 字符集问题

由于3.23还不能设置表的字符集,但是升级到5.1要设为utf8,我用mysqldump导出数据后倒入,发现数据为乱码,找了很多资料发现要什么icov来转换什么的,后来发现需要设置几个参数就可以,参数如下:

mysql服务器启动时需要设置utf8的环境

my.inf

[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci

然后倒入数据,发现数据显示正确

二. 作为客户端连接mysql数据库时,将字符集设置成utf8
建立连接后,先执行以下语句:

SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;

每次数据库重连,以上语句需要重设
修改 includes/database.php 文件:
查找
CODE:[Copy to clipboard]$this->_table_prefix = $table_prefix;
在该行代码下面添加以下三行代码:
CODE:[Copy to clipboard]mysql_query("SET NAMES 'utf8'", $this->_resource);

CODE:[Copy to clipboard]mysql_query("SET CHARACTER SET utf8", $this->_resource);

CODE:[Copy to clipboard]mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'", $this->_resource);

http://www.hackhome.com/InfoView/Article_151991_2.html

二. 安装的问题

由于我安装的时候希望数据文件和软件分离到不同的路径,所以在configure时加了datadir和localstatedir,但是由于这2个参数不一致,发现后面bin/mysql_install_db --user=mysql 会去找localstatedir指定的目录,但是2个路径不一致,发现始终都有问题,后将2个参数的路径改为一样就可以了


rainbowbridg 发表于:2008.07.18 17:01 ::分类: ( mysql学习 ) ::阅读:(26次) :: 评论 (0)

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)




切换风格
新闻聚合
博客日历
文章归档...
最新发表...
博客统计...
Blog信息
网站链接...