php無法連接mysql問題解決方法總結


 
 

本文章總結了在php開發中可能會常常碰到的一些php連接不了mysql數據庫的一些問題總結與解決方法分享,有需要的朋友可參考一下。


問題一

今天給本本裝上mysql和php,一切安裝都很正常(php@IIS7.5-fastCGI)。但用phpmyadmin連接測試時卻出現“#2002無法連接”的錯誤,用其它程序也是同樣問題。
檢查了下,php的mysql擴展正確安裝,mysql服務正常啟動--那就奇了怪了。又用navicat連接,居然連上了。。看來是php和mysql間的通訊出了問題。
百度了一下,問題被揪出來了:
mysql_connect()函數數據庫服務器(server)參數當前設置為localhost,但當其更改為127.0.0.1后又可以正常訪問。
系統hosts文件未提供127.0.0.1到localhost的解析。

解決方法(以win7系統為例):找到C:\Windows\System32\drivers\etc\hosts文件,默認為只讀,你需要復制一份到其他路徑如桌面,打開文件(打開方式:記事本),在文件末尾添加:

127.0.0.1 localhost

如果已存在去掉其前面的“#”。

問題二


php腳本可以正常運行,如phpinfo()。

只要一出現“mysql_connect”函數,就沒反應,也不報錯。

如 $conn = mysql_connect("127.0.0.1","root","xxxx") or die("MYSQL數據庫連接失敗:".mysql_error());

 apache日志目錄error.log中出現

PHP Warning:  PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_mysql.dll'

 解決辦法

將“libmysql.dll”復制到apache的bin目錄下。然后重啟,觀察error.log,如果錯誤消失,那恭喜了。

 另:網上資料也有說將““libmysql.dll””“php_mysql.dll”復制到windows/system32的。


問題三

 

 代碼如下 復制代碼 
 $link_id=@mysql_connect( "localhost ", "sampadm ", "secret "); 
  //以下代碼省略 
?> 

運行時出現如下提示: 
fatal   error:   call   to   undefined   function     mysql_connect()   in   var/www/html/mytest.php

解決方法

1.php.ini中

  extension_dir設置為   "d:\apache2\php\ext "絕對路徑,否則有些環境中會出錯。

  打開下面兩行功能擴展

  extension=php_mysql.dll     
  extension=php_mysqli.dll 
  
2.拷貝libmysql.dll(php目錄下)和php_mysql.dll(php/ext目錄下)至c:\windows\system32目錄下(libmysql.dll必須為php目錄下,比如我的為D:\apache2\php目錄下的libmysql.dll,php_mysql.dll則在D:\apache2\php\ext) 
  
3.測試, 
  1>   先打開命令行 
A)依次點擊“開始”菜單-> “mysql”-> “mysql5   server”-> “MySQL   Command   Line   Client” 
//如此步成功則mysql安全成功,失效則mysql安裝失敗,請卸載后重裝 
  
B)輸入密碼 
//此步正常則說明   root賬戶的密碼正確。失敗則賬號密碼有錯 
  
    2>   新建文件至主目錄,並保存為testmysql.php,接着在瀏覽器中輸入http://localhost/testmysql.php   (或者http://localhost:81/testmysql.php


如果不行查看一下apache是否加載了php與 mysql方法


apache中支置對php5的支持httpd.conf文件中加入下面三行
PHPIniDir "D:/ccopen/php5/"
LoadModule php5_module "D:/ccopen/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php  
php.ini中去掉下面兩行分號
extension=php_mysql.dll   
extension=php_mysqli.dll
將php_mysql.dll和libmysql.dll拷到system32
重起apache服務器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM