致命!用户postgres的身份验证失败,操作系统倍数,无效

时间:2015-07-19 08:49:26

标签: php windows apache postgresql ubuntu

这是我第一次使用Apache,php和postgresql。这就是我所做的:

  • 我安装了postgresql,wapp y pgadmin3,
  • 我用apache / htdocs中的项目复制了文件,
  • 打开索引并尝试输入我的网站的用户帐户,但它说:
  

“致命错误:未捕获异常'PDOException',消息'SQLSTATE [08006] [7]致命:用户«'postgres'»'的身份验证失败,在C:\ Bitnami \ wappstack-5.5.27-0 \ apache2 \ htdocs \ PROJECT \ formss \ class \ connection.php:31堆栈跟踪:#0 C:\ Bitnami \ wappstack-5.5.27-0 \ apache2 \ htdocs \ PROJECT \ forms \ class \ connection.php(31): PDO-> __ construct('pgsql:host = 127 ....',''postgres'',''12345'')#1 C:\ Bitnami \ wappstack-5.5.27-0 \ apache2 \ htdocs \ PROJECT \ forms \ actions \ user_login.php(6):connection-> __ construct()#2 {main}抛出C:\ Bitnami \ wappstack-5.5.27-0 \ apache2 \ htdocs \ PROJECT \ forms \ class \ conection第31行的.php“

我为每个步骤设置的用户postgress的传递是12345。 Pgadmin3让我改变数据库中的所有内容。

我已经在Ubuntu中尝试了所有这些但是没有堆栈,它也说了同样的话。我检查了postgresql的配置,并看到所有用户都说md5就像很多人在其他问题上建议的那样(是的,我搜索并尝试了很多解决方案,但它们对我不起作用)。

真正的问题是,使用完全相同的文件,该项目在我的办公室工作,现在使用Windows 7,干净安装W7和Ubuntu 14.04,不需要任何东西。

这是连接代码:

@model IEnumerable<FHWebUserInterface.Models.Weight>
<div id="visualization" style="width: 600px; height: 400px;"></div>

<div id="linechart_material"></div>



@{
    var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    var weightsAsJsonString = serializer.Serialize(Enumerable.Select(Model, weight =>
        new
        {
            date = weight.Date,
            value = weight.Value
        }));
}

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load('visualization', '1.1', { packages: ['corechart', 'imagelinechart'] });
</script>
<script type="text/javascript"> 
    function drawVisualization(weightsAsJsonString) {

        // Removed the body            

        chart.draw(data, options);
    }

    // here is my change
    var weightsAsJsonString = @weightsAsJsonString; // so it will render your C# object from server side here on client side

    google.setOnLoadCallback(drawVisualization(weightsAsJsonString));
</script>

1 个答案:

答案 0 :(得分:0)

根据评论讨论,创建数据库连接的代码似乎存在问题:

        $this->db=new PDO("pgsql:host=".$this->host.
            ";port=".$this->port.
            ";dbname=".$this->database
            ,"'".$this->user."'"
            ,"'".$this->pass."'");

将用户名和密码包装在引号中非常不寻常,我以前从未见过这个。我们在评论中发现删除引号使连接再次起作用。

您可能希望与同事讨论为什么办公室中的数据库服务器使用这种不寻常的方法。用户帐户可能以某种方式被禁用,可能是因为它是仅限LAN的数据库,并且允许所有连接。

如果他们对您没有的系统有一些了解,也值得接近这段代码的作者。我希望这个不寻常的代码得到评论,所以讨论它可能是下一个最好的事情。