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

时间:2015-07-17 12:18:19

标签: php mysql apache ubuntu phpmyadmin

我有Ubuntu 14.04 LTS。 我设置了apache,phpmyadmin和mysql。我可以使用我的设置密码和root作为用户名通过 localhost / phpmyadmin 访问数据库。我在/ etc / apache2 / sites-enabled中添加了一个链接,该链接链接到位于/ etc / apache2 / sites-available中的网站的原始.conf文件。它有这些行( mypage.conf

php_value mysql.default.user    root
php_value mysql.default.password    mypass
php_value mysql.default.host    localhost

当我尝试使用 index.php 中的数据连接到数据库时,它可以很好地工作:

mysql_connect('localhost', 'root', 'mypass') or die(mysql_error());

但是当我尝试使用以下方法连接到数据库时:

mysql_connect(ini_get("mysql.default.host"), ini_get("mysql.default.user"), ini_get("mysql.default.password")) or die(mysql_error());

作为回报,它将此错误消息发布到页面,并且不执行其余代码:

Access denied for user ''@'localhost' (using password: NO)

据我所知,从默认值得到的是''。所以我必须对.conf文件做错事。你能帮我解决一下吗?

1 个答案:

答案 0 :(得分:0)

如@Vanitas所述,我将连接样式更改为PDO而不是mysql。这是我的

connection.php

<?php
    DEFINE('DB_HOST', 'localhost');
    DEFINE('DB_NAME', 'mydb');
    DEFINE('DB_USER', 'usr');
    DEFINE('DB_PASS', 'pss');

    try{
        $db = new PDO('mysql:host='.DB_HOST.'; dbname='.DB_NAME, DB_USER, DB_PASS);
    }catch(PDOException $exeption){
        echo $exeption->getMessage(). '<br/>';
        die();
    }
?>

我使用

来检索它
require_once('../../0n/connection.php');

它在网络目录之外。所以,这是安全的。我想。而且它的工作很漂亮。