本文實現功能
解決在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主從復制以有數據的情況配置的。
在這個文件里邊加上以下代碼
1 2 3 4 5 6 7 |
|
在mysql8.0所有的存儲引擎都是innodb,所以這里直接默認設置為innodb
字符集設置為utf8
default_authentication_plugin修改密碼驗證插件
經過以上配置完在來測試一下
測試
地址欄輸入http://192.168.254.130/forum/install/index.php,然后一直下一步即可。在這里輸入你的數據庫賬號密碼
點擊確認,就不會出現報錯了
訪問論壇就可以了
在查看數據庫
查看表數一共是292張表
然后來到本地之前安裝好的數據庫里查看數量也是292
總結
以上就是discuz在MySQL8.0的安裝錯誤的方案,雖然就幾行配置,但是也不是一時半會就可以解決的。