【问题标题】:Avoiding MySQL1044 error避免 MySQL1044 错误
【发布时间】:2012-04-23 21:04:22
【问题描述】:

我正在尝试学习 PHP 和 MySQL,当我读到关于 MySQL 的一章时,我被要求使用以下命令创建一个数据库:

CREATE DATABASE publications;

在 mysql 控制台中输入后,出现此错误:

ERROR 1044(42000):用户“@localhost”拒绝访问数据库“root”

我已经登录到我的管理员帐户,所以我认为权限应该不是问题。我已经安装了 XAMPP 包。

如何解决?

【问题讨论】:

  • 没有 PHP 代码我使用 mysql 命令行来执行此操作,这是 Robin Nixon 的《Learning PHP , MySql and Javascript》一书中所说的

标签: mysql mysql-error-1044


【解决方案1】:

您可能升级了 EasyPHP 的版本,或者您做了一些事情来禁用 root 密码。如果是这种情况,您应该尝试为 root 重新建立密码。遇到了同样的问题,我就是这样解决的。

【讨论】:

    【解决方案2】:

    转到http://localhost/xampp/ 并设置适当的密码(在安全选项卡中)。如果您使用mysql 客户端程序,请确保使用适当的凭据调用它:mysql -u <username> -p <password>。在您创建一些新帐户之前,用户名大多为 root

    那我建议你用 phpMyAdmin 来试验 MySQL(应该是http://localhost/phpmyadmin/

    【讨论】:

    • 我已尝试准确输入您所说的内容,但现在我收到错误 1064
    • 既然你对 BluesRockAddict 的回答也说了同样的话,你应该解释一下你做了什么。
    • 我试过输入 mysql -u root -p pass ,mysql -u root,mysqladmin -u root -p pass ,甚至是你2提供的版本 mysql -u -p , mysqladmin -u root password [mypassword] 与我的用户逐个字母并通过,我总是得到 -> 如果我输入';' II 得到 ERROR 1064 一些关于语法错误的东西
    【解决方案3】:

    这有点令人困惑 - 让我试着回答这个问题。

    Mysqladmin 是一个命令行客户端,用于管理你的 mysql 数据库系统——一旦你有 mysql 工作,你通常不需要运行它。 mysql服务器的shell命令行接口是mysql。 (如果您不知道如何运行 shell 命令行,那就是另一个问题了。另外,如果您在 Windows 上,请这样说,因为这有其自身的挑战。)参数是:

    mysql -u username -ppassword databasename
    

    如果您在与 mysql 相同的服务器上运行此命令。注意 -p - 后面没有空格,这很重要。

    所以,键入上面的行来调用 mysql 的命令行界面。然后你可以输入你的mysql命令。 show tablesdesc tablename 之类的东西都可以使用。也就是说,除非您遇到身份验证问题,否则它们将起作用。但是您会知道您遇到了身份验证问题,因为当您尝试像上面那样运行mysql 时,它会失败并出现一些错误,例如“用户'abc'@'localhost' 的访问被拒绝(使用密码:YES)”。这是一个很好的描述性错误消息,可以准确地指出问题所在。

    这有帮助吗?

    一旦通过命令行检查确定您知道正确的参数,您就可以返回使用 xampp 或其他任何东西。 (当出现异常时,请务必使用命令行进行检查 - 这比尝试通过其他接口进行调试要容易得多。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多