快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

discuz论坛数据库改用utf8mb4字符集,正常使用emoji表情符号的教程方案

请联系QQ:1793040 索取软件

正式的discuzX 3.4默认为utf8,并且安装后无法发送一些图释。 现在将测试更改为utf8mb4。
测试机器环境
centos 7.5
mysql 8.0.11 php 7.2.5
apache 2.4.6


下载补丁文件,将其替换并添加到discuzX 3.4中。2018.01.01官方原始文件,可以完成安装,通常可以发布爱情

下载URL http://bbs.wuyou.net/forum.phpmod=viewthread\\u0026tid=409353\\u0026extra=page%3D1

—————————————————————

以下是解决此问题的过程,如果您不感兴趣,请不要关注它:

1.常规安装,然后导出数据库,修改默认字符集

sed-i”/DEFAULT CHARSET = utf8 [^ m]/s/DEFAULT CHARSET = utf8/\ mb4/” bbs.sql

2.如果直接导入bbs.sql,将发生错误,提示如下:

在第104行的错误1071(42000):指定的密钥太长;最大密钥长度为1000个字节
在第115行的错误1146(42S02):表” bbs.pre_common_admincp_perm”不存在
第1行的错误1146(42S02):表” bbs.pre_common_admincp_perm”不存在”
在第117行出现错误1146(42S02):表” bbs.pre_common_admincp_perm”不存在
第1行的错误1146(42S02):表” bbs.pre_common_admincp_perm”不存在

错误1146(42S02)在643行:表” bbs.pre_common_cache”不存在 在行644处出现错误1146(42S02):表” bbs.pre_common_cache”不存在
在第655行的错误1071(42000):指定的密钥太长;最大密钥长度为1000个字节 在第677行出现错误1146(42S02):表” bbs.pre_common_card”不存在
错误1146(42S02)在第678行:表” bbs.pre_common_card”不存在
第1行第1146(42S02)错误:表” bbs.pre_common_card”不存在
在第1831行的错误1071(42000):指定的密钥太长;最大密钥长度为1000字节
第1857行的错误1146(42S02):表” bbs.pre_common_member_profile_setting”不存在
第1858行的错误1146(42S02):表” bbs.pre_common_member_ profile_setting”不存在
第1859行的错误1146(42S02):表” bbs.pre_common_member_profile_setting”不存在
第1460行出现错误1146(42S02):表” bbs.pre_common_member_profile_setting”不存在
第1870行的错误1071(42000):指定的密钥太长;最大密钥长度为1000字节 第1888行的错误1146(42S02):表” bbs.pre_common_member_security”不存在
第1889行处的错误1146(42S02):表” bbs.pre_common_member_security”不存在
第1890行的错误1146(42S02):表” bbs.pre_common_member_security”不存在
第2673行的错误1071(42000):指定的密钥太长;最大密钥长度为1000个字节 第2684行出现错误1146(42S02):表” bbs.pre_common_setting”不存在
第2685行的错误1146(42S02):表” bbs.pre_common_setting”不存在
错误1146(42S02)在第2686行:表” bbs.pre_common_setting”不存在
错误1146(42S02)在2687行:表” bbs.pre_common_setting”不存在
第4800行的错误1071(42000):指定的密钥太长;最大密钥长度为1000个字节
第4816行的错误1146(42S02):表” bbs.pre_forum_groupfield”不存在
在第4817行的错误1146(42S02):表” bbs.pre_forum_groupfield”不存在
第1818行出现错误1146(42S02):表” bbs.pre_forum_groupfield”不存在
在第7101行的错误1071(42000):指定的密钥太长;最大密钥长度为1000字节
在第7120行的错误1146(42S02):表” bbs.pre_home_favorite”不存在
第7121行的错误1146(42S02):表” bbs.pre_home_favorite”不存在
错误1146(42S02)在7122行:表” bbs.pre_home_favorite”不存在
第7797行的错误1071(42000):指定的密钥太长;最大密钥长度为1000个字节
第1808行的错误1146(42S02):表” bbs.pre_mobile_setting”不存在
第7809行的错误1146(42S02):表” bbs.pre_mobile_setting”不存在
错误1146(42S02)在行7810处:表” bbs.pre_mobile_setting”不存在 8107行时出现错误1071(42000):指定的密钥太长;最大密钥长度为1000个字节 在8582行出现错误1146(42S02):表” bbs.pre_ucenter_badwords”不存在
错误1146(42S02)在8583行:表” bbs.pre_ucenter_badwords”不存在
在1584行出现错误1146(42S02):表” bbs。pre_ucenter_badwords”不存在

处理方法1: —————– 根据第104行的错误1071(42000)的提示:指定的密钥太长;最大密钥长度为1000个字节,找到bbs.sql文件的相应的第104行和随后的10行:

sed-n” 104,114p” bbs.sql

CREATE TABLE` pre_common_admincp_perm`(
cpgroupid` smallint(6)unsigned NOT NULL, `perm` varchar(255)NOT NULL, 唯一键cpgroupperm(cpgroupid,perm) )引擎= MyISAM默认字符集= utf8mb4;
;

-转储表pre_common_admincp_perm`的数据
可以看出,UNIQUE KEY cpgroupperm(cpgroupid,perm)的定义长度为(6 + 255)* 4 \\ 1000,只需将perm的值更改为varchar Small,因此总和不超过1000。
现在更改为230。

sed-i” 106s/255/230/” bbs.sql

其他类似的提示行也以相同的方式修改并成功导入数据库。

处理方法2: —————– 根据上述提示中显示的所有表,首先安装文件处理

pre_ucenter_badwords表:对应检查uc_badwords \ nbsp ;,来自uc_server/install/uc.sql 修改
其他表在install/data/install.sql 中进行了修改

所有都在官方原始文件配置下。php文件中的utf8更改为utf8mb4 请注意utf-8不会更改。
修改以下文件 install/data/install.sql uc_server/install/uc.sql
修改install/include/install_var.php
define(” DBCHARSET”,” utf8″); 至 define(” DBCHARSET”,” utf8mb4″);

再次安装。

现在发布,您可以正常使用表情符号了!

奖励

微信清扫支付

微信徽标扫描微信,并奖励作者

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1793040