- 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-hk/n/126394.html