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