首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拒绝访问用户'SYSTEM'@'localhost‘(PHP5.2.17+Windows5.5.8+ mySQL 7)

拒绝访问用户'SYSTEM'@'localhost‘(PHP5.2.17+Windows5.5.8+ mySQL 7)
EN

Stack Overflow用户
提问于 2011-02-10 22:51:19
回答 2查看 5.2K关注 0票数 0

我想在PHP5.2环境中测试一个为PHP5.3.5编写的脚本(作为Apache模块安装)。

我安装了Apache 2.0.64和PHP 5.2.17的新副本,并按照之前配置PHP 5.3的方式对其进行了配置。除了我将libmysql.dll复制到Apache bin目录中(PHP5.3不再有这个文件)。

这两个服务器都是手动配置的(不是XAMPP版本或其他版本),并访问相同的本地安装的mySQL服务器5.5.8。两台服务器都在system帐户下作为Windows Server运行。

PHP 5.3运行良好,PHP 5.2返回错误:

代码语言:javascript
复制
Warning: mysql_connect() [function.mysql-connect]: Access denied 
for user 'SYSTEM'@'localhost' (using password: NO) in C:\Tools\htdocs\myscript.php on line 33

我使用的SQL-user是用PHP代码硬编码的,它不是SYSTEM@localhost。系统似乎是运行Apache的Windows帐户。(如果我从管理员帐户启动Apache,则消息更改为Administrator@localhost。)

在我的SQL-Server上删除了默认用户(名为'')。如果这个空用户存在,PHP5.2将成功连接到数据库,但由于权限的原因,数据库选择(mysql_select_db)失败。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-10 23:10:05

如果中的sql.safe_mode (不是PHP安全模式)在php.ini中的上,PHP将始终使用脚本所有者连接到SQL server,而不是mysql_connect()中指定的用户。

我在配置过程中混淆了safe_modesql.safe_mode属性,花了我6个小时!

答案可以在这里找到:http://www.php.net/manual/de/ref.mysql.php#72632

票数 2
EN

Stack Overflow用户

发布于 2011-02-10 23:04:39

问题是您没有为mysql_connect指定正确的用户名和密码。不要将它们留空(并让PHP使用默认用户),而是指定一个实际的用户名和密码,该用户名和密码是使用GRANT (或phpMyAdmin或任何其他管理客户机)添加到MySQL中的。

允许无密码身份验证是一个很大的禁忌。允许管理员在没有密码的情况下访问是非常可怕的。相反,应该为所有程序创建有限的用户帐户。只有在绝对必要时才使用特权帐户...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4958564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档