包含phpmysqlsocket的詞條

  • 1、Socket文件存在,為什麼PHP總提示mysql.sock錯誤
  • 2、php連接mysql資料庫,報錯Function mysql_connect() is deprecated?
  • 3、在linux下,apache+php+mysql的socket通信,用命令行執行是都能通過的,網頁不行。

查看my.cnf的配置項引用到的是那一個sock文件?還有php.ini引用的sock也要設置!都改了還是不行,就要做link、mysql默認是引用/tmp/mysql.sock

info.php在CentOS

64位虛擬機運行的時候,其中MySQL版本那一欄是空白信息。我查看了info.php源碼,開始以為是MySQL資料庫的用戶名和密碼填寫錯了,仔細檢查沒有錯誤之後,便查看了Apache的error_log,得到如下消息:

mysql_connect():

No

such

file

or

directory

在網上查了一下,說是本地socket設置與默認的不一樣,導致php無法找到mysql的socket文件。根據網上提供的方法,需要做如下操作。

首先,在MySQL中用status查看資料庫狀態,如下所示:

mysql

Ver

14.14

Distrib

5.1.69,

for

redhat-Linux-gnu

(x86_64)

using

readline

5.1

Connection

id:

10

Current

database:

Current

user:

root@localhost

SSL:

Not

in

use

Current

pager:

stdout

Using

outfile:

Using

delimiter:

;

Server

version:

5.1.69

Source

distribution

Protocol

version:

10

Connection:

Localhost

via

UNIX

socket

Server

characterset:

latin1

Db

characterset:

latin1

Client

characterset:

latin1

Conn.

characterset:

latin1

UNIX

socket:

/var/lib/mysql/mysql.sock

Uptime:

20

hours

55

min

30

sec

其中,標紅的部分是我們需要的。然後打開php.ini文件,需要將mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket的值設置為標紅後面的那個目錄。重啟apache伺服器,後續info.php工作正常,MySQL的版本信息能夠正常顯示了。

具體的錯誤呢,一般來說不會這樣,除非你apache用的php和命令行跑的php不是一個版本。

原創文章,作者:T62VT,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126394.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
T62VT的頭像T62VT
上一篇 2024-10-03 23:08
下一篇 2024-10-03 23:08

相關推薦

發表回復

登錄後才能評論