仓酷云

标题: 公布教你怎样办理453h安装在mysql 4.1 以上的UTF8数据库中酿成的乱码和安装失利成绩 ... [打印本页]

作者: 简单生活    时间: 2015-1-16 20:14
标题: 公布教你怎样办理453h安装在mysql 4.1 以上的UTF8数据库中酿成的乱码和安装失利成绩 ...
怀疑这些功能在MySQL5.0中的成熟性。充其量它们在MySQL中被支持的时间也就一年左右,而在MySQL学习教程其他关系型数据库中则已经存在了近10年的时间。这几天在实验安装mambo4.53h版,因为我的数据库是mysq4.1以上版本,而且设定的字符集是UTF8。在实验安装了几回后发明以下几种情形:
1.将数据库设置为latin1,不修正任何文件,在安装时不管选择gb2312仍是utf8,都能够完成安装,而且网页显现一般,可是经由过程phpmyadmin看数据表时发明,内里一切中文全体为乱码,也就是说,经由过程latin1字符集保留,能够一般显现中文网页,可是实践上在数据库中中文是乱码。并且不克不及经由过程phpmyadmin备份(备份出来的文件,不管改成甚么编码,内里中文均为乱码)。以是这不是霸道,我没有做选择思索。
2.将数据库字符集设置成utf8,不修正任何文件,在安装时不管选择gb2312仍是utf8,都呈现1071specifiedkeytoolongmaxlength1000bytes的毛病。而且只需是数据库字符集设置成utf8,(utf8是一个characterset作为3bytes存储,latin1是作为1bytes存储),不管是依照论坛中的一些定见,修正installation/sql/mambo.sql仍是其余文件,城市呈现key凌驾1000bytes的毛病,安装不克不及持续。
我本意是要安装manbo的中文utf8版本,以便利和其余程序整合。以是在查询了google,论坛和其他一些材料后,经由实验,终究以我的设法,以选择manbo的utf8字符集在MySQL4.1以上,而且字符集也是utf8的数据库中安装乐成。网页显现中文一般,无乱码,而且用phpmyadmin查询数据库表时,一切中文也都显现一般,而且以utf8保留。以下是我的办理办法,仅供参考:


起首设置数据库字符集为utf8,

CODE:[Copytoclipboard]ALTERDATABASEDEFAULTCHARACTERSETutf8COLLATEutf8_general_ci
大概经由过程phpmyadmin内里间接改也一样。

修正installation/sql/mambo.sql文件:
查找将一切的

CODE:[Copytoclipboard]TYPE=MyISAM;
交换成

CODE:[Copytoclipboard]TYPE=MyISAMDEFAULTCHARSET=utf8COLLATE=utf8_general_ci;
查找

CODE:[Copytoclipboard]UNIQUEKEY`section_value_value_aro`(`section_value`,`value`)


CODE:[Copytoclipboard]UNIQUEKEY`#__gacl_section_value_value_aro`(`section_value`,`value`),
并将这2行代码用#正文失落,大概删除,whatever~~

在这一段代码上面,也就是

CODE:[Copytoclipboard]#Tablestructurefortable`#__core_acl_aro_groups`
下面,按按次增添以下4行代码:

CODE:[Copytoclipboard]ALTERTABLE`#__core_acl_aro`CHANGE`section_value``section_value`VARCHAR(240)CHARACTERSETlatin1COLLATElatin1_binNOTNULLdefault0;

CODE:[Copytoclipboard]ALTERTABLE`#__core_acl_aro`CHANGE`value``value`VARCHAR(240)CHARACTERSETlatin1COLLATElatin1_binNOTNULLdefault;

CODE:[Copytoclipboard]ALTERTABLE`#__core_acl_aro`ADDUNIQUE`section_value_value_aro`(`section_value`,`value`);

CODE:[Copytoclipboard]ALTERTABLE`#__core_acl_aro`ADDUNIQUE`#__gacl_section_value_value_aro`(`section_value`,`value`);
-----------------------------

修正includes/database.php文件:
查找

CODE:[Copytoclipboard]$this->_table_PRefix=$table_prefix;
在该行代码上面增加以下三行代码:

CODE:[Copytoclipboard]mysql_query("SETNAMESutf8",$this->_resource);

CODE:[Copytoclipboard]mysql_query("SETCHARACTERSETutf8",$this->_resource);

CODE:[Copytoclipboard]mysql_query("SETCOLLATION_CONNECTION=utf8_general_ci",$this->_resource);
修正后保留。

安装的时分,选择UTF8作为编码格局安装。

云云修正后可以一般安装,而且在数据库中的中文显现和保留都一般,假如必要整合discuz大概其他程序的时分,也可以选择UTF8版本,而且整合后不会呈现在注册时利用中文用户名,可是注册后显现为乱码的征象。
注重事项
经本办法修正后,请在晋级manbo的时分,对includes/database.php做响应的修正,不然会堕落。
以上修正办法是我参考了论坛中的几位达人和经由过程google搜刮查到的一些英文材料,另有TWmanbo的一些材料后,经由实验完成修正并经测试没有成绩的。但愿对碰着一样成绩的伴侣有些用途!以为有效的伴侣顶一下,要对得起我写的那末多器材啊。
曾经的功能列表可能会迅速变得过时了。而且,有些功能对有的应用程序非常重要,但是对别的应用程序则不一定。
作者: 因胸联盟    时间: 2015-1-17 21:05
大侠们有推荐的书籍和学习方法写下吧。
作者: 金色的骷髅    时间: 2015-1-21 09:45
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
作者: 第二个灵魂    时间: 2015-1-30 14:04
你可以简单地认为适合的就是好,不适合就是不好。
作者: admin    时间: 2015-2-6 13:14
光写几个SQL实在叫无知。
作者: 再现理想    时间: 2015-3-5 01:12
以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了
作者: 只想知道    时间: 2015-3-11 22:16
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
作者: 老尸    时间: 2015-3-19 15:36
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
作者: 飘灵儿    时间: 2015-3-29 03:21
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..




欢迎光临 仓酷云 (http://www.ckuyun.com/) Powered by Discuz! X3.2