本文实现功能
解决在MySQL8.0安装discuz报错run_sql_error
如果想直接看解决结果,直接去看解决问题目录
VMware虚拟机
Centos7.3
PHP7.0
MySQL8.0
NGINX1.14
Discuz3.4
本地环境为PHP5.6+MySQL5.6在安装discuz没有任何问题。
在虚拟机的centos上出现以下问题MySQL的表无法创建,安装报错

由于在centos的终端截图不方便,下面的所有环境修改都会在xshell上进行操作,并且直接在宿主机上访问。
关于配置如何使用xsheel连接虚拟机
连接模式为NAT,并且已经安装了tools

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

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

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

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

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

这个问题的根源就是在MySQL的版本上。discuz支持的版本为PHP5.3.但是所有的数据库文件都是在MySQL5.5上创建的。所以就会造成字符集乱码的情况。
这个时候我们打开/etc/my.ini,这个是默认的一些配置,下面的那个mysqldump不用管,那个是咔咔在之前配置MySQL主从复制以有数据的情况配置的。

在这个文件里边加上以下代码
init_connect='SET NAMES utf8' default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci default_authentication_plugin=mysql_native_password

在mysql8.0所有的存储引擎都是innodb,所以这里直接默认设置为innodb
字符集设置为utf8
default_authentication_plugin修改密码验证插件
经过以上配置完在来测试一下
地址栏输入http://192.168.254.130/forum/install/index.php,然后一直下一步即可。在这里输入你的数据库账号密码

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

访问论坛就可以了

在查看数据库

查看表数一共是292张表

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

以上就是discuz在MySQL8.0的安装错误的方案,虽然就几行配置,但是也不是一时半会就可以解决的。
Atas ialah kandungan terperinci Discuz如何解决安装时报错run_sql_error. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Bagaimana untuk menyelesaikan ralat pangkalan data discuz
panggilan perkhidmatan web
Apakah nombor telefon perkhidmatan pelanggan bagi Meituan Food Delivery?
Perbezaan antara Fahrenheit dan Celsius
Berapakah Dimensity 8200 bersamaan dengan Snapdragon?
Sistem perisian komputer termasuk
Bagaimana untuk menyelesaikan ralat parsererror
Bagaimana untuk mengkonfigurasi pembolehubah persekitaran JDK