2019年7月9日 星期二

MySQL with "localhost"

前言

     移植(複製)系統後,新系統很慢

     事情是這樣的,公司成立分部,鑑於前輩們 (都走了) 建的系統很好用

     公司讓我去建一個到分部,我心裡 OS : 複製貼上我最會 !!

     一切都很順利,安裝  PHP 然後 Hello World ~~

     安裝 Mysql 匯出匯入,會 Google 的都會,直到我開啟系統...好慢...

檢查步驟 1 : 打開"開發者人員選項"


     不急不慌先怪硬體...,開玩笑的...請按 F12

     開了 F12 就發現 Hello World 很快,但系統很慢...

     再仔細觀察發現連結資料庫特很慢 ( 圖檔很快 )


檢查步驟 2 : 檢查 Mysql 


     我第一個想法,我要去優化前輩們的 SQL,結果大概是 2.2 秒 變 2 秒...

檢查步驟 3 : Google it !!


     Google 結果發現問題出在 localhost 身上

     當你連結資料庫時,hostname = "localhost",此時 Server 會找 localhost 所對應的 IP 位置

     只要你沒特別將 localhost 導向 127.0.0.1,那就會找 ::1,IPv6 裡的主機本身

     鑒於 Mysql 並沒設定開啟 IPv6 所以你就只能等,等 Server 用 ::1發現不行才會換 127.0.0.1

     造成連結資料庫特很慢的結果。

解決辦法

     解決辦法有 3 種

     1. 把系統裡的 hostname 通通從 localhost 改成 127.0.0.1

          如果你前輩有先見之明,它會是全域參數,改一下就好

          若不是...見一個改一個...

     2. 設定主機的 localhost 讓其導向 127.0.0.1 

          這我不會,附上參考資料
          http://iamshowp.blogspot.com/2010/05/127001localhostipv6.html

     3. Enable Mysql IPv6 

          這最簡單,最推薦

          修改 config
[mysqld]
bind_address = 127.0.0.1,::1
重啟 MySQL (windows指令)
net stop mysql
net start mysql

參考資料 : https://dev.mysql.com/doc/refman/5.5/en/ipv6-local-connections.html

0 意見:

張貼留言

Popular Posts