[英]php: mysql_connect() failing with no error message
我正在CentOS 5.6的命令行上運行一個簡單的測試腳本,並從CentOS / RHEL 5.6的PHP 5.3安裝了PHP軟件包。
PHP在所有其他情況下都可以正常運行,但是當我點擊mysql_connect()
它將失敗且沒有錯誤。
如果我跑步
$ php -m
我沒有將MySQL視為已安裝的模塊。
但是,我已將extension=mysql.so
添加到我的php.ini中並重新啟動。
輸出'rpm -qa | grep php'
php-common-5.3.10-1.w5
php-5.3.10-1.w5
php-cli-5.3.10-1.w5
'yum install php-mysql'的輸出
--> Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-mysql-5.1.6-27.el5_7.5.x86_64 (updates)
php-pdo-5.1.6-27.el5_7.5.x86_64 from updates has depsolving problems
--> Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-pdo-5.1.6-27.el5_7.5.x86_64 (updates)
Error: Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-pdo-5.1.6-27.el5_7.5.x86_64 (updates)
Error: Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-mysql-5.1.6-27.el5_7.5.x86_64 (updates)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
I am not seeing MySQL as an installed module.
你安裝了嗎?
# yum install php-mysql
(從安裝php
的同一倉庫中)。
編輯:
運行這個:
yum --enablerepo=webtatic install php-mysql
這告訴yum從webtatic倉庫(除了系統配置的倉庫)中獲取軟件包。 如果要在啟用系統的存儲庫中進行Webtatic,請運行:
yum --enablerepo=webtatic install webtatic-release
首先,一些建議:停止使用mysql庫,並至少使用PDO或mysqli庫。
現在獲取一些故障排除幫助:第一步是100%確保mysql正在加載。 使用以下命令創建腳本(基於Web):
phpinfo();
確認此頁面某處是否有塊,指示正在加載mysql擴展。
無論您在哪里測試,都不確定錯誤,請在調用mysql_connect之前添加以下行:
ini_set('display_errors', 1);
ini_set('log_errors', 1);
error_reporting(E_ALL | E_STRICT);
這將確保您在連接之前不會抑制其他地方的錯誤。 有些框架有時會這樣做。
如果確實是模塊正在加載,並且添加了錯誤日志代碼,您仍然不會收到有效錯誤。 我會嘗試在命令行php腳本中進行連接。 在php.ini文件中查看“ error_log”的設置。 這是它將記錄到的默認日志-有時基於HTTP的設置會覆蓋日志記錄,因此即使拋出錯誤,您也看不到或找不到它們。 命令行php腳本將其排除在外。
最后但並非最不重要的一點是,您始終可以將連接字符串發布到此帖子中。 嘗試使用與mysql_connect相同的憑據的mysql命令從服務器上的命令行作為腳本進行連接。 您也許可以很好地連接,但是憑據不正確。
如果模塊未加載,請嘗試准確查找模塊所在的位置,並將完整路徑放入php.ini中。 百勝有時會在php.ini所需要的位置安裝東西。 在Yum安裝結束時,有時會告訴您使用蠻力查找的路徑(如果沒有),請執行以下操作:
cd /
find . -name 'mysql.so'
所以在php.ini中,而不是
extension=mysql.so
放
extension=/path/to/found/mysql.so
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.