2012-08-01 74 views
0

我已經瀏覽了相關文章和他們的建議解決方案(和here),但他們似乎沒有幫助我的情況。MacPorts:MySQL和PHP無法連接

我在Snow Leopard上運行的MacPorts 2.1.2,和我已經安裝了以下軟件包:

php5-mysql @5.3.15_0+mysql5 (active) 
php5 @5.3.15_0+apache2 (active) 
mysql5 @5.1.63_0 (active) 
mysql_select @0.1.2_0 (active) 
apache2 @2.2.22_2+preforkmpm (active) 

我可以在本地主機指向我的網頁瀏覽器,它會連接到默認的站點;一個測試index.php

<?php phpinfo() ?> 

頁面正常工作,所以我認爲在這一點上,PHP功能。問題在於連接到已安裝的MySQL服務器。 phpmyadmin和Joomla都無法連接,而嘗試一個.php測試腳本也導致了問題。我對如何從這裏出發有點不知所措。

MySQL服務器運行明顯:

~ > ps ax | grep mysql 
10884 ?? S  0:00.03 /bin/sh /opt/local/lib/mysql5/bin/mysqld_safe 
10930 ?? S  0:07.66 /opt/local/libexec/mysqld --basedir=/opt/local --datadir=/opt/local/var/db/mysql5 --user=_mysql --log-error=/opt/local/var/db/mysql5/tigger.local.err --pid-file=/opt/local/var/db/mysql5/tigger.local.pid 

,我能夠使用MySQL客戶端:

~ > mysql 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 15 
Server version: 5.1.63 Source distribution 

mysql> show databases; 
+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| test    | 
+--------------------+ 
2 rows in set (0.04 sec) 

mysql> show grants for 'root'@'localhost'; 
+---------------------------------------------------------------------+ 
| Grants for [email protected]           | 
+---------------------------------------------------------------------+ 
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION | 
+---------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

有插座

~ > ll /opt/local/var/run/mysql5/mysqld.sock 
srwxrwxrwx 1 _mysql admin 0 Jul 31 16:55 /opt/local/var/run/mysql5/mysqld.sock 

,並在php.ini包含MySQL模塊和配置

~ > /opt/local/bin/php -i | grep mysql | grep socket 
mysql.default_socket => /opt/local/var/run/mysql5/mysqld.sock => /opt/local/var/run/mysql5/mysqld.sock 
mysqli.default_socket => no value => no value 
pdo_mysql.default_socket => /opt/local/var/run/mysql5/mysqld.sock => /opt/local/var/run/mysql5/mysqld.sock 

這一切在我看來,這是應該如何。但是,當我嘗試使用「root」登錄phpmyadmin時,連接失敗,並且在Joomla安裝期間發生同樣的情況。

任何幫助,提示,建議表示讚賞:-)

+0

有沒有連接失敗的錯誤信息?而且localhost這個詞對於mysql有一些特殊的含義。也許這是造成問題的原因。 – hakre 2012-08-01 18:08:32

+0

從phpmyadmin得到:#1045無法登錄到MySQL服務器。從Joomla我得到:無法連接到數據庫。連接器返回數字:無法連接到數據庫:無法連接到MySQL。 – Jens 2012-08-01 18:15:02

+0

所以你想通過套接字或通過IP連接? – hakre 2012-08-01 18:18:46

回答

0

首先,我發現this線程這是有益的,讓我確認我所做的就是確定。

少了什麼我的結束:

  1. 我加入了/opt/local/var/run/mysql5/mysqld.socketc/php5/php.ini文件中明確。不知道這是否改變任何東西,但現在所有的PHP訪問插座:

    /opt/local/etc > /opt/local/bin/php -i | grep mysql | grep socket 
    mysql.default_socket => /opt/local/var/run/mysql5/mysqld.sock => /opt/local/var/run/mysql5/mysqld.sock 
    mysqli.default_socket => /opt/local/var/run/mysql5/mysqld.sock => /opt/local/var/run/mysql5/mysqld.sock 
    pdo_mysql.default_socket => /opt/local/var/run/mysql5/mysqld.sock => /opt/local/var/run/mysql5/mysqld.sock 
    
  2. 我可以發誓,我這樣做,但我想也無妨:/opt/local/lib/mysql5/bin/mysqladmin -u root password '..'現在Joomla和phpMyAdmin的兩個連接啓動mysqld。

就這樣!另一個線程的Test Script工作得很好。