Ⅰ php連接mysql資料庫,報錯Function mysql_connect() is deprecated
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的版本信息能夠正常顯示了。
Ⅱ php 連接mysql資料庫錯誤,求解
碼沒錯,只是沒有載入php_mysql.dll這個extension 修改php.ini後要重啟apache才行,不然你修改的效果不會顯示出來的
Ⅲ 近期使用phpmysql出現error:Lost connection to MySQL server ring query錯誤,急求!!!
一般這種情況可能的原因:
1.資料庫太大,導致伺服器超時了並且關閉了連接。這種情況你可以通過修改mysql的超時配置來改善,如interactive_timeout、wait_timeout、max_allowed_packet。
2.也有可能是你訪問的資料庫表有問題,這種情況一般就是只當你訪問某個表才會出現這個問題,那麼你可能需要修復下該表。
以下是mysql用戶手冊中的相關資料:
18.2 使用MySQL時的一些常見錯誤
18.2.1 MySQL server has gone away錯誤
本小節也涉及有關Lost connection to server ring query的錯誤。
對MySQL server has gone away錯誤最常見的原因是伺服器超時了並且關閉了連接。預設地,如果沒有事情發生,伺服器在 8個小時後關閉連接。你可在啟動mysqld時通過設置wait_timeout變數改變時間限制。
你可以通過執行mysqladmin version並且檢驗正常運行的時間來檢查MySQL還沒死掉。
如果你有一個腳本,你只須再發出查詢讓客護進行一次自動的重新連接。
在這種請下,你通常能獲得下列錯誤代碼(你得到的是OS相關的):
CR_SERVER_GONE_ERROR 客戶不能發送一個問題給伺服器。
CR_SERVER_LOST 當寫伺服器時,客戶沒有出錯,但是它沒有得到對問題的一個完整的答案(或任何答案)。
如果你向伺服器發送不正確的或太大的查詢,你也可能得到這些錯誤。如果mysqld得到一個太大或不正常的包,它認為客戶出錯了並關閉連接。如果你需要較大的查詢(例如,如果你正在處理較大的BLOB列),你可以使用-O max_allowed_packet=#選項(預設1M)啟動mysqld以增加查詢限制。多餘的內存按需分配,這樣mysqld只有在你發出較大差詢時或mysqld必須返回較大的結果行時,才使用更多的內存!
Ⅳ 使用php鏈接mysql資料庫的時候報錯了,錯誤提示:Warning: mysqli::__construct(): (HY000/2002):
$result = mysqli_query($connect, $query) or die ('Error querying database.');這句話後面加上. mysqli_error($connect ))即改為:
$result = mysqli_query($connect, $query) or die ('Error querying database.'. mysqli_error($connect )));
查看一下返回什麼錯誤描述,然後根據錯誤描述進行修改,當然也可以查看mysql的錯誤日誌啦
ps:光從代碼上沒看出錯誤,有可能資料庫里的欄位名你寫錯了