用户 ''@'localhost' 的访问被拒绝(使用密码:NO)
Access denied for user ''@'localhost' (using password: NO)
我有 Ubuntu 14.04 LTS。
我设置了 apache、phpmyadmin 和 mysql。我可以使用我设置的密码和 root 作为用户名通过 localhost/phpmyadmin 访问数据库。我在 /etc/apache2/sites-enabled 里面放了一个 link,links 到位于 /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());
在 return 中,它将此错误消息发布到页面并且不执行其余代码:
Access denied for user ''@'localhost' (using password: NO)
据我了解,它从默认值中得到的是''。所以我一定是对 .conf 文件做错了什么。你能帮我一下吗?
如@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');
它在网络目录之外。所以,它是安全的。我想。而且它运行良好。
我有 Ubuntu 14.04 LTS。 我设置了 apache、phpmyadmin 和 mysql。我可以使用我设置的密码和 root 作为用户名通过 localhost/phpmyadmin 访问数据库。我在 /etc/apache2/sites-enabled 里面放了一个 link,links 到位于 /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());
在 return 中,它将此错误消息发布到页面并且不执行其余代码:
Access denied for user ''@'localhost' (using password: NO)
据我了解,它从默认值中得到的是''。所以我一定是对 .conf 文件做错了什么。你能帮我一下吗?
如@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');
它在网络目录之外。所以,它是安全的。我想。而且它运行良好。