发表于: 2008.07.18 17:01
分类: mysql学习
出处: http://rainbowbridg.itpub.net/post/23663/466846
---------------------------------------------------------------
这回数据库升级遇到了一下问题:
我们的数据库原来是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个参数的路径改为一样就可以了











