【发布时间】: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