Discuz如何解决安装时报错run_sql_error

举报
原来是咔咔 发表于 2022/03/26 22:10:45 2022/03/26
【摘要】 本文实现功能 解决在MySQL8.0安装discuz报错run_sql_error 如果想直接看解决结果,直接去看解决问题目录 问题环境 VMware虚拟机 Centos7.3 PHP7.0 MySQL8.0 NGINX1.14 Discuz3.4 问题还原 本地环境为PHP5.6+MySQL5.6...

本文实现功能

解决在MySQL8.0安装discuz报错run_sql_error

如果想直接看解决结果,直接去看解决问题目录

问题环境

  1. VMware虚拟机

  2. Centos7.3

  3. PHP7.0

  4. MySQL8.0

  5. NGINX1.14

  6. Discuz3.4

问题还原

本地环境为PHP5.6+MySQL5.6在安装discuz没有任何问题。

虚拟机的centos上出现以下问题MySQL的表无法创建,安装报错

image.png

宿主机使用Xsheel和Ftp

由于在centos的终端截图不方便,下面的所有环境修改都会在xshell上进行操作,并且直接在宿主机上访问。

关于配置如何使用xsheel连接虚拟机

连接模式为NAT,并且已经安装了tools

image.png

使用xsheel连接,在虚拟机使用ifconfig查看ip地址

image.png

然后进行连接,需要输入账号密码,账号密码就是你的虚拟机账号密码

image.png

连接成功就是以下样子,可以输入PHP -v来查看PHP版本信息

image.png

还有一个就是ftp,由于需要传输点东西所以也使用了宿主机的ftp连接了虚拟机。同理也是输入ip地址并且端口为22

image.png

连接成功后就可以获取到虚拟机的文件

image.png

解决问题

这个问题的根源就是在MySQL的版本上。discuz支持的版本为PHP5.3.但是所有的数据库文件都是在MySQL5.5上创建的。所以就会造成字符集乱码的情况。

这个时候我们打开/etc/my.ini,这个是默认的一些配置,下面的那个mysqldump不用管,那个是咔咔在之前配置MySQL主从复制以有数据的情况配置的。

image.png

在这个文件里边加上以下代码


  
  1. init_connect='SET NAMES utf8'
  2. default-storage-engine=INNODB
  3. character-set-server=utf8
  4. collation-server=utf8_general_ci
  5. default_authentication_plugin=mysql_native_password

image.png

在mysql8.0所有的存储引擎都是innodb,所以这里直接默认设置为innodb

字符集设置为utf8

default_authentication_plugin修改密码验证插件

经过以上配置完在来测试一下

这里还需要在加一个步骤就是使用mysql_native_password来修改一下密码

测试

地址栏输入http://192.168.254.130/forum/install/index.php,然后一直下一步即可。在这里输入你的数据库账号密码

image.png

点击确认,就不会出现报错了

image.png

访问论坛就可以了

image.png

在查看数据库

image.png

查看表数一共是292张表

image.png

然后来到本地之前安装好的数据库里查看数量也是292

image.png

总结

以上就是discuz在MySQL8.0的安装错误的方案,虽然就几行配置,但是也不是一时半会就可以解决的。

文章来源: blog.csdn.net,作者:咔咔-,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/fangkang7/article/details/106147748

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。