【问题标题】:Connect to database with database-specific user with PHP使用 PHP 以特定于数据库的用户连接到数据库
【发布时间】:2013-03-28 17:37:52
【问题描述】:

我以前使用过 CMS(Joomla、Wordpress、Drupal)——我通常这样做的方式是创建数据库,然后我进入数据库并创建一个拥有该数据库所有权限的用户(非全球的)。然后我可以使用我创建的用户名和密码安装 CMS。所以我知道用户可以连接并做事!

现在我正在尝试一些非 CMS 的东西,我的连接看起来像这样(这是在我使用 XAMPP 的本地机器上):

  $host = "localhost";
  $user = "myDatabase-Specific-User";
  $pass = "myUserPassword";
  $databaseName = "myDatabaseName";
  $tableName = "pre_tableIwant";
  $con = mysql_connect($host,$user,$pass) ;
  $dbs = mysql_select_db($databaseName, $con);

但我在连接时遇到错误,它不会让我连接。

如果我使用具有相同代码的 GLOBAL 用户(即 root,或我创建的可以访问所有数据库的另一个用户),我可以连接并获取我的信息。但我想保持限制(出于安全考虑)并且只使用有权访问该特定数据库的用户。

有什么想法吗?我意识到这可能是一个新问题 - 但我对它为什么不起作用感到有点困惑

【问题讨论】:

  • 你到底遇到了什么错误?
  • mysql_connect(): 用户'myDatabase-Specific-User'@'localhost'的访问被拒绝(使用密码:YES)
  • 检查 myDatabase-Specific-User 权限
  • 你在使用 phpmyadmin 吗?
  • 而且 mysql_connect 已被弃用,不要在新代码中使用它。相反,应使用 MySQLi 或 PDO_MySQL 扩展

标签: php mysql xampp localhost


【解决方案1】:

根据 Web 主机,您可能需要将“localhost”更改为实际的数据库主机。我知道如果你使用hosting24或000webhost,就是这样。有时它可以是 msql.xxx.com 例如。

【讨论】:

  • 抱歉 - 我正在使用 XAMPP - 这是在我的本地主机上 - 我会更新问题!谢谢!
  • 哦,我明白了,我会试着找出问题所在。这让我:)
【解决方案2】:

确保 mysql 用户可以访问%(通配符)和localhost 连接,它们是不同的。通常如果数据库和webserver在同一台机器上,那么你需要localhost

【讨论】:

  • 它应该是 localhost - 并且用户确实可以访问它。
【解决方案3】:

我最终使用了 PDO_MySQL,并利用 PDO 让一切正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多