【问题标题】:Access denied connecting to database using PHP generated by MySQL WorkBench访问被拒绝使用 MySQL WorkBench 生成的 PHP 连接到数据库
【发布时间】:2015-02-21 12:03:22
【问题描述】:

我看过几个类似的帖子,但没有一个能真正帮助解决我的问题。我正在尝试连接到使用 MySQL 工作台创建的数据库。在我在 Workbench 中的用户权限下,有一个 GUI,允许您启用所有授权和权限。

当我运行脚本 show grants for phpTester@localhost; 时,它显示:

GRANT ALL PRIVILEGES ON *.* TO 'phpTester'@'localhost' WITH GRANT OPTION

所以我知道我拥有所有权限,而且 WorkBench 还有一个插件,您可以在其中将 SQL 复制到剪贴板,它会自动提取您的数据库设置,因此您可以复制并粘贴到您的 PHP 脚本中。所以我的脚本是这样的:

define('DB_NAME', 'forms1');
define('DB_USER', 'phpTester');
define('DB_PASSWORD', '12345');
define('DB_HOST', 'localhost');
define('DB_PORT', 2080);


$link = mysql_connect(DB_HOST, DB_USER,DB_PASSWORD, DB_PORT);

if (!$link){
  die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

if(!$db_selected){
  die('Not Working ' . DB_NAME . ':' . mysql_error());  
} 

它失败并出现错误:

Warning: mysql_connect(): Access denied for user 'phpTester'@'localhost' (using password: YES) on line 10
Could not connect: Access denied for user 'phpTester'@'localhost' (using password: YES)

而当我使用这行 PHP 时:

$link = mysql_connect(DB_HOST, DB_USER);

我收到此错误:

Not Working forms1:Access denied for user ''@'localhost' to database 'forms1'.

但是我确实为这个用户设置了密码,并且我正在使用 xampp 作为我的本地主机。

【问题讨论】:

  • 确保您有一个名为 phpTester 和密码 12345 的 mysql 用户。尝试从 phpmyadmin 的用户部分创建一个新用户。并尝试使用这些凭据。这不是php方面的问题。这是与mysql身份验证和权限有关的问题。另请注意 mysql_* 函数已被贬值,因此请尝试使用 mysqli。
  • 我遇到了 MySQl Workbench 在我更改权限后无法刷新权限的问题。只需从查询窗口运行“FLUSH PRIVILEGES”即可。
  • 现在我真的开始感到困惑了。当我去 phpmyadmin 并尝试使用 phpTester 登录时,12345。它说无法登录 mysql 服务器。但是当我去 mysql Workbench 并使用 phpTester 登录时,12345 我可以。我正在为我的本地主机服务器使用 xampp。我在 workBench 中制作了 phpTester,所以该用户名不应该存储在我的本地主机上以供 phpmyadmin 识别吗?
  • 所以我只需使用 phpTester 无密码即可登录 phpmyadmin。 (这很奇怪,因为当我在工作台中创建它时它有一个密码)这个 phpTester 实例没有创建数据库或任何东西。然后,当我退出 phpmyadmin 并使用 root 登录时。我什至没有看到 phpTester 用户。
  • 你可以查询:SELECT * FROM mysql.user \G;你可以得到你需要的所有信息,权限,用户名,密码(空通)主机等。如果你要在这里发布一些信息,请小心。 :)

标签: php mysql mysql-workbench


【解决方案1】:

原来我连接到错误的主机,这是一个非常简单的解决方法,而不是连接到“localhost”,您必须连接到标准的 127.0.0.1 环回 IP 地址和端口 3306。然后输入您的信息就像您的 phpmyadmin 中的用户和密码一样,您应该已连接。确保在您的 phpmyadmin 中该用户具有您需要的权限。到这里,您的工作台已连接到您的 phpmyadmin。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 2019-03-04
    • 1970-01-01
    • 2013-08-13
    • 2017-07-29
    相关资源
    最近更新 更多