警告:mysql_query()[function.mysql-query]:用户'ODBC'@'localhost'拒绝访问(使用密码:NO)

时间:2011-10-02 08:28:21

标签: php mysql phpmyadmin xampp

我在Windows 7上使用XAMPP,当我尝试打开当前项目的login.php时

我收到此错误

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in E:\xampplite\htdocs\newfule\mcp\clientlist.php on line 19

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in E:\xampplite\htdocs\newfule\mcp\clientlist.php on line 19

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in E:\xampplite\htdocs\newfule\mcp\clientlist.php on line 21
Sorry No entries for the Records of Student ......

这是配置文件

<?php

$link = mysql_connect('127.0.0.1', 'root', '');
if (!$link) {
   die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('fueldb', $link);
if (!$db_selected) {
   die ('Can\'t use foo : ' . mysql_error());
}
?>

这是一个警告是在phpmyadmin

enter image description here

6 个答案:

答案 0 :(得分:0)

使用phpmyadmin,你不能让一个空密码的用户在mysql中被允许使用。

答案 1 :(得分:0)

错误似乎不在配置文件中。当没有指定时,ODBC是默认用户,所以由于配置文件中的一切似乎都很好,所以它在调用mysql_query之前没有包含,或者mysql_query调用本身是错误的。

没有更多代码,没有真正的方法可以知道。

答案 2 :(得分:0)

我认为你没有配置文件的问题。我认为添加配置文件或包含配置文件有问题。我建议你查看包含或添加配置文件的链接。

答案 3 :(得分:0)

使用localhost而不是127.0.0.1

127.0.0.1使用TCP而不是unix套接字

也停止使用mysql for PHP。它已被删除。使用mysqli或pdo

答案 4 :(得分:0)

您的错误和您的配置文件没有应用相同的用户

警告:mysql_query()[function.mysql-query]:用户'ODBC'@'localhost'的访问被拒绝(使用密码:NO)

从主机“ localhost”查询用户“ ODBC”的错误

mysql_connect('127.0.0.1', 'root', '');

将用户“ root”连接到“ 127.0.0.1”

?是否已应用您的配置?似乎“ clientlist.php”正在使用其他$link资源

还考虑了默认情况下mysql用户表中的用户包含主机引用。这意味着 root @ localhost 可以正确无密码访问,但 root@127.0.0.1 可以被拒绝。

如果已注册的用户具有密码和允许的主机,则可以在“ mysql”数据库的用户表中查看。如果主机不同,每个用户可能会出现多次。也可以在主机中使用字符“%”来允许所有主机或子网(但我不建议在生产环境中使用此

在所有情况下,建议创建一个适当的用户并为所需的数据库赋予特权以对其进行操作。

答案 5 :(得分:-1)

尝试向用户提供访问表:

grant all On [tabelName] to [userName];

例如

grant all On mysql.* to root;