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

Posted

技术标签:

【中文标题】警告:mysql_query() [function.mysql-query]:用户 \'ODBC\'@\'localhost\' 的访问被拒绝(使用密码:否)【英文标题】:Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO)警告:mysql_query() [function.mysql-query]:用户 'ODBC'@'localhost' 的访问被拒绝(使用密码:否) 【发布时间】:2011-11-29 07:59:20 【问题描述】:

我在 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

【问题讨论】:

Warning: mysql_fetch_* expects parameter 1 to be resource, boolean given error 的可能重复项 【参考方案1】:

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

【讨论】:

只需编辑你的mysql用户。我要强调的是,没有密码 php 脚本应该可以工作,而 phpmyadmin 不能。有了密码,phpmyadmin 也可以正常工作。【参考方案2】:

错误似乎不在配置文件中。没有指定时,ODBC 是默认用户,因此由于配置文件中的所有内容似乎都很好,因此它似乎在调用 mysql_query 之前未包含在内,或者 mysql_query 调用本身执行错误。

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

【讨论】:

【参考方案3】:

尝试给用户访问表:

grant all On [tabelName] to [userName];

例子

grant all On mysql.* to root;

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

使用 localhost 代替 127.0.0.1

127.0.0.1 使用 TCP 而不是 unix 套接字

同时停止在 PHP 中使用 mysql。它已被删除。使用 mysqli 或 pdo

【讨论】:

用户报告说正在使用 Windows 7。这是对 *nix 服务器中最终安装的一个很好的评论,但不适用于当前使用 XAMP 服务器的情况。 建议用mysqli 代替mysql 在这两种情况下都是正确的。 mysql 很适合访问旧的 mysql 4 或以前的安装,但当前的 xampp 版本使用的是更高版本的 mysql 服务器 没关系 - mysql 区别对待【参考方案6】:

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

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

从主机“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”数据库的用户表中查看注册用户,如果他们有密码和允许的主机(或主机)。如果主机不同,每个用户可能会出现多次。也可以在主机中使用字符“%”来允许所有主机或子网(但我不建议将其用于生产环境

在所有情况下,建议创建一个适当的用户并为所需的数据库分配权限以操作它。

【讨论】:

以上是关于警告:mysql_query() [function.mysql-query]:用户 'ODBC'@'localhost' 的访问被拒绝(使用密码:否)的主要内容,如果未能解决你的问题,请参考以下文章

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

捕获 mysql_query 错误

用巨大的数组填充表

PHP 警告 include() 相关

PHP函数前面添加@的作用

mysql_query():用户''@'localhost'的访问被拒绝[重复]