【问题标题】:Mac OS X 10.8 MySQL connection error: localhost does not work, 127.0.0.1 all OKMac OS X 10.8 MySQL连接错误:localhost不工作​​,127.0.0.1都OK
【发布时间】:2012-12-01 04:28:12
【问题描述】:

我现在有一个 10.8 的新 MabBook,我正在尝试设置所有 Apache 和 MySQL 等。 Apache 成功运行,包括虚拟主机。

在我的 /etc/hosts 中,我设置了所有本地主机,包括 127.0.0.1 localhost 等。

当我尝试连接到我的本地虚拟主机之一时,例如alpensonne,我可以毫无问题地连接到 MySQL。如果我尝试将 MySQL 主机设置为 localhost,则会收到以下错误:

Database connection error (2): Could not connect to MySQL.

我知道错误 (2) 表示用户名或密码不正确,但它们很好。 如果我连接

mysql -u root
SELECT password,host FROM user where user='root';

另外,我刚刚做了两次确认:

SET PASSWORD FOR 'root'@'localhost' = '';

本地主机是否可能使用不同的 MySQL 套接字?也许它会尝试连接到不同的 MySQL?

【问题讨论】:

    标签: php mysqli vhosts


    【解决方案1】:

    好的,我发现了错误... 问题是,我忘记将 php.ini 文件更改为指向 mysql.default_socket ... 我的 default_socket 设置为 /var/mysql/mysql.sock 所以我刚刚创建了一个指向 /tmp/mysql.sock 的符号链接,现在一切正常! :)

    @shadyyx 感谢 MAMP 的提议,我当然知道这一点,但我不是 MAMP、XAMPP、LAMP 等的忠实粉丝。对于 windows 用户来说它很好,所以你可以使用 apache 而不是 IIS,但对于 Linux、Unix 和 Mac 用户你可以使用 apache 服务器中的构建...所以无需使用其他第三方软件。你也依赖于 php 版本等。我更喜欢能够自己配置它。

    【讨论】:

    • 仅供参考:您收到此错误的原因是,如果您将“localhost”指定为主机名,MySQL 将使用本地套接字连接,即使您可能希望它通过 TCP 连接,例如当您使用“127.0.0.1”。
    【解决方案2】:

    详细说明@schurtertom 的答案...

    问题在于 PHP.INI 中的 mysql.default_socket 设置默认为与 MySQL 实际放置该文件的位置不同的位置。

    不要编辑配置文件,而是在 PHP 正在查找的位置创建一个别名,通过运行以下两个命令连接到真正的 mysql.sock(无需重新启动):

    mkdir /var/mysql
    ln -s /tmp/mysql.sock /var/mysql/mysql.sock
    

    【讨论】:

    • 为我工作。谢谢! (Mac OS 10.11.6) 我已经用自制软件安装了 mysql。
    【解决方案3】:

    使用 MacPorts 中的 MySQL,它适用于以下路径:

    mysql.default_socket = /opt/local/var/run/mysql56/mysqld.sock
    

    【讨论】:

      【解决方案4】:

      如果 MySQL 仍然没有连接,运行:

      brew switch openssl 1.0.2s
      

      【讨论】:

        猜你喜欢
        • 2015-10-03
        • 2013-03-03
        • 2012-06-06
        • 2012-12-01
        • 2014-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-03
        相关资源
        最近更新 更多