本文實現功能
解決在MySQL8.0安裝discuz報錯run_sql_error
如果想直接看解決結果,直接去看解決問題目錄
問題環境
-
VMware虛擬機
-
Centos7.3
-
PHP7.0
-
MySQL8.0
-
NGINX1.14
-
Discuz3.4
問題還原
本地環境爲PHP5.6+MySQL5.6在安裝discuz沒有任何問題。
在虛擬機的centos上出現以下問題MySQL的表無法創建,安裝報錯
宿主機使用Xsheel和Ftp
由於在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修改密碼驗證插件
經過以上配置完在來測試一下
這裏還需要在加一個步驟就是使用mysql_native_password來修改一下密碼
測試
地址欄輸入http://192.168.254.130/forum/install/index.php,然後一直下一步即可。在這裏輸入你的數據庫賬號密碼
點擊確認,就不會出現報錯了
訪問論壇就可以了
在查看數據庫
查看錶數一共是292張表
然後來到本地之前安裝好的數據庫裏查看數量也是292
總結
以上就是discuz在MySQL8.0的安裝錯誤的方案,雖然就幾行配置,但是也不是一時半會就可以解決的。