解决Nginx与mysql勾结的错误
nginx與mysql“勾結”比較常見的錯誤就是,當本服務器的mysql主機默認為localhost的時候,nginx往往無法發現其數據庫,哪怕是賬號密碼都正確也發現不了,從而數據庫里的內容不能以網頁的形式呈現出來。
這種情況是為嘛呢?
這個情況主要是因為在linux下,nginx默認與mysql的鏈接不是用tcp協議而是socket,但是當我們打開mysql的相關文件時候,會看見mysql把socket文件指向為no_value,如圖:
來到/var/lib/mysql/文件夾下,會看到有一個mysql.sock,這是一個粉色文件。
然后返回到php的安裝文件夾下,打開文件夾下的lib/php會看到php.ini,如果沒有這個文件,就返回到php的最初解壓縮的下載包里,找到php.ini-development,把這個文件cp到lib/php那個文件夾里。
打開php.ini-development,發現mysql-socket也是空,如圖:
于是把粉色文件mysql.sock的完整路徑填寫到mysql.default_socket后面即可。然后保存退出,重啟php-fpm,這時候重新刷新nginx的mysql綁定數據庫頁面,就應該可以看到數據庫被成功刷新了(至少會有一個test默認數據庫)。
當然,如果你不喜歡socket通信,就可以把數據庫主機的localhost改成127.0.0.1,強迫nginx走tcp 協議也是可以的,這樣就不用費那么多事兒了。
轉載于:https://blog.51cto.com/chenx1242/1771018
總結
以上是生活随笔為你收集整理的解决Nginx与mysql勾结的错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS6.5搭建SVN服务器(Ap
- 下一篇: 某些书籍翻译的太屎了,误导人!