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的表無法創建,安裝報錯

Discuz如何解決安裝時報錯run_sql_error

宿主機使用Xsheel和Ftp

由于在centos的終端截圖不方便,下面的所有環境修改都會在xshell上進行操作,并且直接在宿主機上訪問。

關于配置如何使用xsheel連接虛擬機

連接模式為NAT,并且已經安裝了tools

Discuz如何解決安裝時報錯run_sql_error

使用xsheel連接,在虛擬機使用ifconfig查看ip地址

Discuz如何解決安裝時報錯run_sql_error

然后進行連接,需要輸入賬號密碼,賬號密碼就是你的虛擬機賬號密碼

Discuz如何解決安裝時報錯run_sql_error

連接成功就是以下樣子,可以輸入PHP -v來查看PHP版本信息

Discuz如何解決安裝時報錯run_sql_error

還有一個就是ftp,由于需要傳輸點東西所以也使用了宿主機的ftp連接了虛擬機。同理也是輸入ip地址并且端口為22

Discuz如何解決安裝時報錯run_sql_error

連接成功后就可以獲取到虛擬機的文件

Discuz如何解決安裝時報錯run_sql_error

解決問題

這個問題的根源就是在MySQL的版本上。discuz支持的版本為PHP5.3.但是所有的數據庫文件都是在MySQL5.5上創建的。所以就會造成字符集亂碼的情況。

這個時候我們打開/etc/my.ini,這個是默認的一些配置,下面的那個mysqldump不用管,那個是咔咔在之前配置MySQL主從復制以有數據的情況配置的。

Discuz如何解決安裝時報錯run_sql_error

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

init_connect='SET?NAMES?utf8'  default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci  default_authentication_plugin=mysql_native_password

Discuz如何解決安裝時報錯run_sql_error

在mysql8.0所有的存儲引擎都是innodb,所以這里直接默認設置為innodb

字符集設置為utf8

default_authentication_plugin修改密碼驗證插件

經過以上配置完在來測試一下

測試

地址欄輸入http://192.168.254.130/forum/install/index.php,然后一直下一步即可。在這里輸入你的數據庫賬號密碼

Discuz如何解決安裝時報錯run_sql_error

點擊確認,就不會出現報錯了

Discuz如何解決安裝時報錯run_sql_error

訪問論壇就可以了

Discuz如何解決安裝時報錯run_sql_error

在查看數據庫

Discuz如何解決安裝時報錯run_sql_error

查看表數一共是292張表

Discuz如何解決安裝時報錯run_sql_error

然后來到本地之前安裝好的數據庫里查看數量也是292

Discuz如何解決安裝時報錯run_sql_error

總結

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享