typecho無(wú)法連接數(shù)據(jù)庫(kù)問(wèn)題

問(wèn)題

幫朋友安裝typecho博客羹幸,環(huán)境是CentOS7勇吊、Nginx1.17、php5顽决、mysql5.7短条。typecho安裝過(guò)程中出現(xiàn)如下問(wèn)題:

對(duì)不起,無(wú)法連接數(shù)據(jù)庫(kù),請(qǐng)先檢查數(shù)據(jù)庫(kù)配置再繼續(xù)進(jìn)行安裝?

由于typecho不打印詳細(xì)的php報(bào)錯(cuò),所以同樣是“無(wú)法連接數(shù)據(jù)庫(kù)”才菠,原因卻千差萬(wàn)別茸时。因此在這里整理一下排錯(cuò)步驟,方便遇到同樣問(wèn)題的同學(xué)赋访,找到自己出問(wèn)題的原因可都。

排錯(cuò)步驟

1.確認(rèn)是否是 數(shù)據(jù)庫(kù)信息填寫(xiě)錯(cuò)誤

最容易想到的報(bào)錯(cuò)原因,就是在install界面填寫(xiě)的數(shù)據(jù)庫(kù)配置信息不對(duì)蚓耽。檢查一下渠牲,在typecho安裝頁(yè)面,填寫(xiě)的數(shù)據(jù)庫(kù)名稱田晚、數(shù)據(jù)庫(kù)用戶名嘱兼、數(shù)據(jù)庫(kù)用戶密碼是否正確;

2.確認(rèn)是否是 數(shù)據(jù)庫(kù)服務(wù)存在問(wèn)題

如果信息正確贤徒,那么考慮是否是mysql的服務(wù)的問(wèn)題芹壕,比如,數(shù)據(jù)庫(kù)服務(wù)沒(méi)有運(yùn)行接奈、你自定義的數(shù)據(jù)庫(kù)端口和填寫(xiě)不一致等等踢涌。運(yùn)行下列命令:

netstat -utnlp | grep mysql

2.1如果命令運(yùn)行有結(jié)果,顯示的端口號(hào)和你在typecho安裝頁(yè)面填寫(xiě)的端口一致序宦,說(shuō)明mysql服務(wù)運(yùn)行和監(jiān)聽(tīng)是正常的睁壁。

2.2如果沒(méi)有結(jié)果,是mysql服務(wù)沒(méi)有啟動(dòng),或者防火墻禁掉了mysql的運(yùn)行端口潘明。

關(guān)掉防火墻行剂,然后用你安裝mysql的那個(gè)linux系統(tǒng)用戶啟動(dòng)一下mysql服務(wù)。

.../support-files/mysql.server start

...是你安裝mysql時(shí)配置的mysql根目錄(basedir)钳降,一般是/usr/local/mysql或者/etc/mysql厚宰。

2.3如果有結(jié)果,但顯示的端口號(hào)遂填,和你在typecho安裝頁(yè)面填寫(xiě)的端口不一致铲觉,說(shuō)明你端口號(hào)填錯(cuò)了,請(qǐng)以這個(gè)命令運(yùn)行結(jié)果中顯示的端口為準(zhǔn)吓坚。

3. 確認(rèn)是否是? 數(shù)據(jù)庫(kù)實(shí)例/數(shù)據(jù)庫(kù)用戶存在問(wèn)題

如果數(shù)據(jù)庫(kù)服務(wù)正常撵幽,再考慮是不是數(shù)據(jù)庫(kù)實(shí)例出了問(wèn)題,比如忘了創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例礁击、填寫(xiě)的數(shù)據(jù)庫(kù)用戶權(quán)限不足等等盐杂。

如果忘了創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例(就是你填寫(xiě)的數(shù)據(jù)庫(kù)名其實(shí)并不存在),那就創(chuàng)建一下哆窿,并且保障你填的那個(gè)數(shù)據(jù)庫(kù)用戶况褪,的確有你填的那個(gè)數(shù)據(jù)庫(kù)的完全權(quán)限。下面是創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例更耻、創(chuàng)建數(shù)據(jù)庫(kù)用戶测垛、賦予權(quán)限的命令。

假設(shè)秧均,你在typecho安裝頁(yè)填的數(shù)據(jù)庫(kù)名是AAA食侮,數(shù)據(jù)庫(kù)用戶名是BBB,密碼是CCC:

//linux系統(tǒng)命令目胡,進(jìn)入mysql:

mysql -u root -p

//sql命令锯七,創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)AAA;

create database if? not exists AAA default charset utf8 collate utf8_general_ci;

// sql命令誉己,創(chuàng)建一個(gè) 新用戶BBB眉尸,密碼是CCC:

create user 'BBB'@'%' identified by 'CCC';

//sql命令,數(shù)據(jù)庫(kù)AAA的權(quán)限全部向BBB開(kāi)放:

grant all on AAA.* to 'BBB@'%';

//sql命令巨双,刷新權(quán)限

flush privileges;

4.確認(rèn)是否是 php-fpm和數(shù)據(jù)庫(kù)的連接存在問(wèn)題

如果數(shù)據(jù)庫(kù)確確實(shí)實(shí)建好了噪猾、數(shù)據(jù)庫(kù)用戶也分配好了權(quán)限、mysql服務(wù)也正常啟動(dòng)筑累、端口也沒(méi)毛病袱蜡,還是連接不上數(shù)據(jù)庫(kù),可能是php.ini配置的問(wèn)題慢宗。php-fpm默認(rèn)使用socket連接數(shù)據(jù)庫(kù)坪蚁,而socket文件(mysql.sock)的位置是從php.ini文件中讀取的奔穿。但mysql.sock文件的實(shí)際位置,是mysql配置決定的敏晤,所以php.ini默認(rèn)的socket位置可能不對(duì)贱田,導(dǎo)致找不到socket、連接不上嘴脾。

這個(gè)有解決兩個(gè)辦法:

4.1.直接把typecho安裝頁(yè)面中湘换,數(shù)據(jù)庫(kù)地址 “l(fā)ocalhost” 改為 “127.0.0.1” 。

這就相當(dāng)于不用socket連接而用TCP/IP連接统阿。這一方法mysql可能也需要調(diào)整一下,讓mysql以tcp/ip的方式監(jiān)聽(tīng)你指定的那個(gè)端口(一般是3306)筹我。這一方案我沒(méi)有測(cè)試扶平。

4.2.修改php.ini文件,指向正確的mysql.sock位置蔬蕊。

首先看看你的mysql.sock文件在哪结澄,可以用find命令查,也可以查看mysql的配置文件my.cnf(一般在目錄/etc下面)中socket字段是怎么寫(xiě)的岸夯。假設(shè)麻献,你查到mysql.sock的位置是/ABC/mysql.sock,那么你應(yīng)該修改php.ini文件猜扮,使它指向正確的mysql.sock位置勉吻。vim php.ini,找到mysql.default_socket這一字段旅赢,取消它的注釋齿桃,并改為

mysql.default_socket =? /ABC/mysql.sock

如果你也不知道php.ini文件在哪,可以find / -name 'php.ini'煮盼。

當(dāng)然短纵,在typecho安裝界面,解釋器選擇mysql原生僵控,才需要修改php.ini的mysql.default_socket字段香到,如果解釋器選擇pdo,那需要修改的字段就變成php.ini文件中pdo對(duì)應(yīng)的socket字段了报破。

以上就是我想到的可能導(dǎo)致 “對(duì)不起,無(wú)法連接數(shù)據(jù)庫(kù),請(qǐng)先檢查數(shù)據(jù)庫(kù)配置再繼續(xù)進(jìn)行安裝?” 的所有可能的原因了悠就。?

順便提一下安裝時(shí)可能出現(xiàn)的另一種問(wèn)題:安裝typecho后立即進(jìn)入nginx未知報(bào)錯(cuò)頁(yè)面。這有可能是Nginx配置文件里充易,location后面的(或者fastcgi_split_path_info后面的)正則表達(dá)式?jīng)]寫(xiě)對(duì)理卑,導(dǎo)致path_info不能正確傳遞到fastcgi,百度一下正確的寫(xiě)法吧~(說(shuō)這段是因?yàn)槲易约壕痛中膶?xiě)錯(cuò)了哈哈哈)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蔽氨,一起剝皮案震驚了整個(gè)濱河市藐唠,隨后出現(xiàn)的幾起案子帆疟,更是在濱河造成了極大的恐慌,老刑警劉巖宇立,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踪宠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡妈嘹,警方通過(guò)查閱死者的電腦和手機(jī)柳琢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)润脸,“玉大人柬脸,你說(shuō)我怎么就攤上這事”醒保” “怎么了倒堕?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)爆价。 經(jīng)常有香客問(wèn)我垦巴,道長(zhǎng),這世上最難降的妖魔是什么铭段? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任骤宣,我火速辦了婚禮,結(jié)果婚禮上序愚,老公的妹妹穿的比我還像新娘憔披。我一直安慰自己,他們只是感情好爸吮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布活逆。 她就那樣靜靜地躺著,像睡著了一般拗胜。 火紅的嫁衣襯著肌膚如雪蔗候。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,604評(píng)論 1 305
  • 那天埂软,我揣著相機(jī)與錄音锈遥,去河邊找鬼。 笑死勘畔,一個(gè)胖子當(dāng)著我的面吹牛所灸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播炫七,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼爬立,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了万哪?” 一聲冷哼從身側(cè)響起侠驯,我...
    開(kāi)封第一講書(shū)人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抡秆,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后吟策,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體儒士,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年檩坚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了着撩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匾委,死狀恐怖拖叙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赂乐,我是刑警寧澤薯鳍,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站沪猴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏采章。R本人自食惡果不足惜运嗜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望悯舟。 院中可真熱鬧担租,春花似錦、人聲如沸抵怎。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)反惕。三九已至尝艘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間姿染,已是汗流浹背背亥。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留悬赏,地道東北人狡汉。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像闽颇,于是被迫代替她去往敵國(guó)和親盾戴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355