Discuz如何解決安裝時報錯run_sql_error

本文實現功能

解決在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

在這個文件裏邊加上以下代碼

init_connect='SET NAMES utf8'

default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

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的安裝錯誤的方案,雖然就幾行配置,但是也不是一時半會就可以解決的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章