仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1886|回复: 8
打印 上一主题 下一主题

[学习教程] 公布教你怎样办理453h安装在mysql 4.1 以上的UTF8数据库中酿成的乱码和安装失利成绩 ...

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:14:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
怀疑这些功能在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:31 | 只看该作者
大侠们有推荐的书籍和学习方法写下吧。
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-21 09:45:06 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
第二个灵魂 该用户已被删除
地板
发表于 2015-1-30 14:04:54 | 只看该作者
你可以简单地认为适合的就是好,不适合就是不好。
admin 该用户已被删除
5#
发表于 2015-2-6 13:14:27 | 只看该作者
光写几个SQL实在叫无知。
再现理想 该用户已被删除
6#
发表于 2015-3-5 01:12:06 | 只看该作者
以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了
只想知道 该用户已被删除
7#
发表于 2015-3-11 22:16:35 | 只看该作者
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
老尸 该用户已被删除
8#
发表于 2015-3-19 15:36:27 | 只看该作者
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
飘灵儿 该用户已被删除
9#
发表于 2015-3-29 03:21:18 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-26 08:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表