首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从php连接到mysql?

如何从php连接到mysql?
EN

Stack Overflow用户
提问于 2010-04-05 03:13:22
回答 10查看 5.6K关注 0票数 1

我正在研究一本关于php/mysql开发的书中的例子。我正在开发linux/apache环境。

我已经建立了一个数据库和一个用户。我试图连接这一行代码:

代码语言:javascript
复制
$db_server = mysql_connect($db_hostname, $db_username, $db_password);

我知道这个错误:

警告: mysql_connect() function.mysql- connect :无法连接到数据库的/var/www/host/dj/connect.php中用户'www-data'@'localhost‘(使用密码:是)的访问被拒绝:用户'www-data'@'localhost’被拒绝访问(使用密码:是)

我只能猜到这里发生了什么:我认为www-data是apache的用户名。在数据库连接上,传递给mysql的凭据不是我的数据库用户的凭据,而是apache自己的凭据。这就是这里发生的事吗?

如何传递我为用户定义的凭据?

编辑:顺便说一下,我在变量$db_hostname、$db_username、$db_password中有凭证。

它们由使用require_once的另一个文件传入。如果找不到那个文件,我就会得到一个错误。因此,我知道我的用户名和密码正在被我的脚本所使用。

我的两个脚本都可以在这里看到:http://pastebin.com/MUneLEib

已解决:

谢谢你们。

你们中有几个人指出了我的粗心。

另外,我对Neo的回答感到特别高兴:他告诉我为什么要使用apache进程所有者的用户名。

:)

EN

回答 10

Stack Overflow用户

发布于 2010-04-05 04:49:46

我刚看了你的密码!具有用户名的变量是$database_username,但您使用的是$db_username。将代码更改为:

$db_server = mysql_connect($db_hostname, $database_username, $db_password);

或者用用户名更改行:$db_ username =‘you user’;//或您创建的用户名

当您没有传递任何内容时,它将是用户mysql假设的,但是它不会得到密码,所以如果您没有定义$db_password,它会说:(使用密码:否)

您与您的用户一起设置了$database_username,但是您传递的是未设置的$db_username,因此当mysql用户的密码没有任何传递时,用户就是默认的linux!由于没有具有该密码或特权的mysql用户,甚至没有这个名称,所以您没有访问权限!

该用户是www-data,正如您所猜的那样,apache用户被分配给客户端请求!

票数 3
EN

Stack Overflow用户

发布于 2010-04-05 04:52:38

login.php中使用变量$database_username,但在连接函数中使用$db_username。试着把它们匹配起来。

票数 3
EN

Stack Overflow用户

发布于 2010-04-05 03:15:41

用户名进入$db_username,密码进入$db_password

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

https://stackoverflow.com/questions/2576754

复制
相关文章

相似问题

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