关于 mysql 的奇怪的问题,从何而来的 nobody@localhost

2016-01-29 21:03:11 +08:00
 dyniao

貌似这个开源的程序一直运行的很好,也可能早坏了,但是今天突然发现了这个错误;
Access denied for user 'nobody'@'localhost' (using password: NO)

一些必要的说明

前几天 yum update 过

mysql Ver 14.14 Distrib 5.6.28, for Linux
账号密码都正确

GRANT USAGE ON *.* TO 'sc'@'localhost' IDENTIFIED BY PASSWORD <secret>
GRANT ALL PRIVILEGES ON 'sc'.* TO 'scdb'@'localhost' WITH GRANT OPTION
GRANT ALL PRIVILEGES ON 'sc'.* TO 'scdb'@'localhost'

用 mysql_connect 连接的。
@mysql_connect($this->host, $this->user, $this->pass, true)
mysql_error()显示的错误就是
Access denied for user 'nobody'@'localhost' (using password: NO)

改成
@mysql_connect('localhost', '账', '密', true))

也是同样的错误,我就见了 G 了!


代码里边搜索的 根本没有 nobody 的字符,也看不到相关的问题。
感觉唯一 nobody 相关的就是 文件 nobody:nobody 了


写到最后问题来了……这个错误是怎么产生的?如何解决?

3362 次点击
所在节点    MySQL
5 条回复
tianice
2016-01-29 21:43:57 +08:00
看看$this->user 这个值是什么,会不会是空
dyniao
2016-01-29 22:34:58 +08:00
@tianice

我发现了,什么账户运行这个就是提示什么
Access denied for user '什么账户'@'localhost' (using password: NO)

改成 apache nginx root
各提示
Access denied for user
apache@localhost
ngingx@localhost
root@localhost


为什么不用里边填写的 mysql 的账户,非得用 文件的运行权限账户 读数据库呢,别的站的没有这个问题,独这一个站。

我是哪里配置错了么?
lujjjh
2016-01-29 22:51:31 +08:00
http://php.net/manual/zh/function.mysql-connect.php

username

用户名。默认值由 mysql.default_user 定义。 在 SQL 安全模式 时,参数被忽略,总是使用服务器进程所有者的用户名。

password

密码。默认值由 mysql.default_password 定义。在 SQL 安全模式 时,参数被忽略,总是使用空密码。

很可能是这个原因。
dyniao
2016-01-29 23:47:04 +08:00
@lujjjh 一语中的

确实是这个问题,你说到这我才想起来改过 php.ini

里边有个值 sql.safe_mode=Off 我给 on 了

这样就不允许 不允许带参数的 mysql connect 了

sql.safe_mode boolean
If turned on, database connection functions that specify default values will use those values in place of any user-supplied arguments. For details on the default values, see the documentation for the relevant connection functions.

折腾半天,搜来搜去,还是 v2 高手的经验重要。
HanSonJ
2016-01-30 02:56:19 +08:00
安装 mariadb-server 就会多一个 mysql 的组和用户

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/254319

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX