MacPorts:MySQL和PHP不';t连接

MacPorts:MySQL和PHP不';t连接,php,mysql,apache2,macports,Php,Mysql,Apache2,Macports,我已经浏览了相关的帖子和他们建议的解决方案(和),但它们似乎对我的情况没有帮助 我在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) 我可

我已经浏览了相关的帖子和他们建议的解决方案(和),但它们似乎对我的情况没有帮助

我在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)
我可以将我的web浏览器指向localhost,它将连接到默认站点;一个测试index.php

<?php phpinfo() ?>
我可以使用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 root@localhost                                           |
+---------------------------------------------------------------------+
| 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
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安装过程中也会发生同样的情况

感谢您的任何帮助、提示和建议:-)

首先,我找到了有用的线索,让我验证一下我所做的一切是否正确

我这边缺少什么:

  • 我明确地将
    /opt/local/var/run/mysql5/mysqld.sock
    添加到
    etc/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
    
  • 我可以发誓我这么做了,但我还是尝试了:
    /opt/local/lib/mysql5/bin/mysqladmin-u root password'..
    ,现在Joomla和phpmyadmin都连接到了mysqld


  • 就这些!另一个线程的连接也正常。

    连接失败时是否有错误消息?此外,localhost一词对mysql也有一些特殊的含义。也许这就是问题的原因。从phpmyadmin我得到:#1045无法登录MySQL服务器。从Joomla我得到:无法连接到数据库。连接器返回的号码:无法连接到数据库:无法连接到MySQL。所以您想通过套接字或ip连接?嗯。。我不知道:)我要乔姆拉跑。我想这两种方式(套接字或IP)都适合我,但我不确定这两种方式的优点是什么。
    /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