- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在研究一本关于 php/mysql 开发的书中的示例。我在 linux/apache 环境中工作。
我已经建立了一个数据库和一个用户。我尝试连接这行代码:
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
我收到这个错误:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'www-data'@'localhost' (using password: YES) in /var/www/hosts/dj/connect.php on line 3 unable to connect to database: Access denied for user 'www-data'@'localhost' (using password: YES)
我只能猜测这里发生了什么:我认为 www-data 是 apache 的用户名。在数据库连接时,传递给 mysql 的凭据不是我的数据库用户的凭据,而是 apache 自己的凭据。这就是这里发生的事情吗?
如何传递我为用户定义的凭据?
编辑:顺便说一句——我在变量 $db_hostname、$db_username、$db_password 中确实有凭据。
它们由另一个文件使用 require_once 传入。如果找不到该文件,则会出现错误。所以,我知道我的用户名和密码正在被我的脚本使用。
我的两个脚本都可以在这里看到: http://pastebin.com/MUneLEib
#已解决:
谢谢你们。
你们中的一些人指出我编码粗心。
此外,我对 Neo 的回答特别满意:他告诉我为什么使用 apache 进程所有者的用户名。
:)
最佳答案
我刚刚看了你的代码!带有用户名的变量是 $database_username 但是您正在使用 $db_username.. 将您的代码更改为:
$db_server = mysql_connect($db_hostname, $database_username, $db_password);
或者您可以更改用户名行:$db_username='[your mysql user]';//或者你创建的用户名
当你不传递任何东西时,mysql 会假设用户是用户,但它不会获得密码,所以如果你没有定义 $db_password,它会说:(using password:NO)
你为你的用户设置了 $database_username 但你传递的 $db_username 没有设置,所以当没有为 mysql 用户传递任何密码时,用户是默认的 linux 用户名!由于没有具有该密码或权限的 mysql 用户,甚至没有具有该名称的 mysql 用户,您没有访问权限!
该用户是 www-data,正如您猜测的那样,它是分配给客户端请求的 apache 用户!
关于php - 如何从 php 连接到 mysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2576754/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!