使用带密码的mysql_connect无法连接到mysql 5.0.8

时间:2012-04-13 21:33:08

标签: php mysql sql phpmyadmin mysqli

我可以使用php连接到我的mysql数据库而无需密码。但是,当我在phpmyadmin中添加密码时,我无法再连接。我一直得到错误:

"Could not connect: Access denied for user 'admin'@'localhost' (using password: YES)"

我尝试使用MySQL密码4.0和4.1+的两种设置,结果相同。

mysql_connect ("127.0.0.1", "admin", "password") or  die('Could not connect: ' . mysql_error());;
mysql_select_db ("datatable");

有没有人知道这里会发生什么?

编辑:如果我关闭密码,我可以访问它。似乎有一些误解

4 个答案:

答案 0 :(得分:1)

根据您显示的mysql_connect语句,您尝试以admin@'127.0.0.1'身份进行连接。这需要使用TCP / IP连接到mysql。如果以admin@localhost连接,则使用mysql.sock(套接字文件)连接到mysqld。

您应该运行此查询

SELECT user,host,password FROM mysql.user WHERE user='admin';

您应该看到admin@localhost已定义。你可能不会看到admin@'127.0.0.1'。您可以添加它,但只需编写admin@localhost代码就可以了。

尝试更改代码,如下所示:

mysql_connect ("localhost", "admin", "password") or  die('Could not connect: ' . mysql_error());;
mysql_select_db ("datatable");

如果你可以在没有密码的情况下连接mysql,那么你的mysql安装就不安全了。

您需要为admin @ localhost添加密码并删除匿名用户登录,如下所示:

UPDATE mysql.user SET password=password('whateverpassword')
where user='admin' and host='localhost';
DELETE FROM mysql.user WHERE user='';
FLUSH PRIVILEGES;

这是另一个建议:像这样创建admin@127.0.0.1用户:

GRANT ALL PRIVILEGES ON *.* TO admin@'127.0.0.1' IDENTIFIED BY 'whateverpassword';

并尝试原始代码

答案 1 :(得分:1)

这可能会有所帮助

以下步骤: -

  1. 转到phpmyadmin;
  2. 单击要将pw更改为(onl left);
  3. 的数据库
  4. 点击“特权”;
  5. 点击root用户右侧的“编辑权限”图标以获取localhost。
  6. 转到“更改密码”块;
  7. 勾选“密码”单选按钮;
  8. 输入密码并重新输入该密码;
  9. 打勾:...保留旧的。
  10. 点击“go”;
  11. 现在从WAMPSERVER菜单中打开MySql控制台;
  12. 它会问你一个pw - 只是点击返回,因为你还没有它(下次你去控制台你需要输入你输入的新pw) 。 输入以下内容:

    更新mysql.user SET密码=密码(“xxxxxx”) 用户=“root”; (其中xxxxxx是您在上一步中输入的密码)。

  13. 现在输入: FLUSH PRIVILEGES;

  14. 转到您的WAMP或MAMP文件夹,找到APPS文件夹,然后单击您的PHPMYADMIN文件夹(例如我的文件夹名为phpmyadmin2.11.6)并找到config.inc.php

  15. 使用wordpad打开config.inc.php,找到以下文字:

  16. $cfg['Servers'][$i]['password'] = '';

    现在添加您在步骤3中使用的密码,如下所示:

    $cfg['Servers'][$i]['password'] = 'yourPasswordHere';

    1. 现在保存此修改,并关闭config.inc.php
    2. 你现在应该全部准备好了!

      来源 - http://www.knowledgesutra.com/discuss/tsilti-php-myadmin-access-mysql-database.html

答案 2 :(得分:0)

您的用户名或密码不正确。确保正确键入它们,而不留下尾随空格。用户名和密码区分大小写。

答案 3 :(得分:0)

如果您通过phpMyAdmin篡改MySQL用户数据,则必须执行

FLUSH PRIVILEGES

命令以使新规则适用。