代码之家  ›  专栏  ›  技术社区  ›  o01

Mac OS X上的PHP和MySQL:GUI用户的访问被拒绝

  •  3
  • o01  · 技术社区  · 17 年前

    我刚刚在我的Macbook上安装并配置了Apache、MySQL、PHP和phpMyAdmin,以便有一个本地开发环境。但是,在我将一个项目移到本地服务器之后,我在调用MySQL_query()时遇到了一个奇怪的MySQL错误:

    拒绝用户访问 'u securityagent'@'localhost'(使用 密码:否)

    首先,我发送给MySQL的查询都是有效的,我甚至通过phpMyAdmin对其进行了测试,得到了完美的结果。其次,错误消息只在这里发生,而我在每页至少有4个其他mysql连接和查询。对mysql_query()的调用发生在一个非常长的函数的末尾,该函数处理新创建或修改的文章的数据。基本上就是这样:

    1. 从文章表格中收集所有数据(标题、内容、日期等)
    2. 验证收集的数据
    3. 连接到数据库
    4. 基于已验证的项目数据动态构建SQL查询
    5. 关闭连接前将查询发送到数据库

    很基本,我知道。我不认识用户名“\u securityagent”,所以在快速搜索之后,我在苹果开发者连接上的一篇文章中发现了这个关于一些随机错误的内容:

    Mac OS X的安全基础设施通过运行其GUI来解决这个问题 代码为特殊用户“\u securityagent”。

    因此,正如Frank在评论中建议的那样,我对mysql_connect()调用中使用的所有变量都放了一个var_dump(),每次它都返回正确的值(当然用户名不是“_securityagent”)。因此,我想知道是否有人知道“securityagent”为什么要连接到我的数据库,以及我如何在调用mysql_query()时避免发生此错误。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Kornel    17 年前

    如果未显式指定用户名,MySQL将尝试使用当前系统用户的名称来猜测用户名。

    您不必接受,只需显式指定所需的用户名。

    如何联系取决于你是如何联系的。万一 phpMyAdmin 是的 config.inc.php ,添加如下行:

    $cfg['Servers'][0]['user'] = 'Eirik';
    

    (见 manual )

        2
  •  1
  •   Mike Meyer    17 年前

    您是使用预先制作的包设置本地AMP服务器,还是通过相应的操作系统特定下载包安装MySQL、PHP等?设置Apache、MySQL和PHP4/5可能是一个真正的PITA。

    如果你的设置有问题 I'd recommend MAMP . 这是一个漂亮的一体式软件包,真的很管用。您仍然可以访问您想要的所有配置文件,所有内容都包含在MAMP文件夹中,而不是分散在整个系统中。如果苹果升级了预安装版本的Apache/PHP,那么您的特定于机器的配置将不会被覆盖,就像在使用预安装的Apache/PHP时一样。

    推荐文章