Namako

海參的潮間帶工作室

PHP5 與 MySQL8 的相容性問題

之前為了調整 Wordpress 版型問題
嘗試將 php7 降版到 php5,結果卻遇到了奇怪的問題…

1
Server sent charset (255) unknown to the client. Please, report to the developers in...

原因

上網估狗了一下,其實答案蠻好找的
原因是因為 MySQL 在8.0之後更改了預設的 charset
從原本的utf8改成utf8mb4
結果php5就不認得啦

解法

既然知道了問題,那做法便是把預設的 charset 改回utf8就好了。
網路上看到都是要去 configuration file 改設定

1
2
3
4
5
6
7
8
9
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8

結果我卻卡在這裡…
因為我用wizard裝起來的,所以從頭到尾都沒有改過設定檔
於是我的問題變成了:
Windows版的MySQL ConfigurationFile究竟在哪裡????

尋找設定檔

跑去stackoverflow爬文,得到了一堆奇奇怪怪的答案
每個人都提供了不一樣的位址,然後有的人的設定檔叫做my.ini,有的叫做my.cfg (你們搞得我好亂啊)

最後記錄一下真正讓我找到檔案位址的作法:

  1. WIN+R 執行services.msc
  2. 找到你的MySQL服務,如果照預設的會叫做MySQL+幾個數字 (我的叫做MySQL80)
  3. 打開查看細節,會看到執行檔的位置 “C:\Program Files\MySQL…”
  4. 上面那串字串後面會帶個參數--defaults-file= 參數後的檔案就是你的設定檔啦!

後記

結果問題解決了,買來的版型還是不能用 。゚(゚´ω`゚)゚。
最後設計師還是決定換一個版型,而我也換回使用php7

有種白忙一場的感覺呢。


Hi 喜歡這篇文章的話 可以按個讚或請我喝杯咖啡
Buy me a coffeeBuy me a coffee

目錄