我正在尝试学习 PHP 和 MySQL,当我读到 MySQL 的一章时,我被要求使用以下命令创建一个数据库:
CREATE DATABASE publications;
在 mysql 控制台中输入后,出现此错误:
错误 1044(42000):用户“@localhost”拒绝访问数据库“root”
我已经登录到我的管理员帐户,所以我认为权限应该不是问题。我已经安装了 XAMPP 包。
如何解决?
我正在尝试学习 PHP 和 MySQL,当我读到 MySQL 的一章时,我被要求使用以下命令创建一个数据库:
CREATE DATABASE publications;
在 mysql 控制台中输入后,出现此错误:
错误 1044(42000):用户“@localhost”拒绝访问数据库“root”
我已经登录到我的管理员帐户,所以我认为权限应该不是问题。我已经安装了 XAMPP 包。
如何解决?
您可能升级了 EasyPHP 的版本,或者您做了一些事情来禁用 root 密码。如果是这种情况,您应该尝试为 root 重新建立密码。有同样的问题,这就是我解决它的方法。
转到http://localhost/xampp/并设置适当的密码(在安全选项卡中)。如果您使用mysql
客户端程序,请确保使用适当的凭据调用它:mysql -u <username> -p <password>
. 用户名主要是root
在您创建一些新帐户之前。
然后我建议你使用 phpMyAdmin 来试验 MySQL(它应该在http://localhost/phpmyadmin/)
这有点令人困惑 - 让我试着回答这个问题。
Mysqladmin 是一个命令行客户端,用于管理你的 mysql 数据库系统——一旦你有 mysql 工作,你通常不需要运行它。mysql 服务器的 shell 命令行界面是mysql
. (如果您不知道如何运行 shell 命令行,那就是另一个问题。另外,如果您使用的是 Windows,请这样说,因为这有其自身的挑战。)参数是:
mysql -u username -ppassword databasename
如果您在与 mysql 相同的服务器上运行此命令。请注意 -p - 之后缺少空格,这很重要。
因此,键入上面的行来调用 mysql 的命令行界面。然后你可以输入你的mysql命令。show tables
,等之类的东西desc tablename
会起作用。也就是说,除非您遇到身份验证问题,否则它们将起作用。但是您会知道您遇到了身份验证问题,因为当您尝试mysql
按上述方式运行时,它将失败并出现一些错误,例如“用户'abc'@'localhost'的访问被拒绝(使用密码:YES)”。这是一个很好的描述性错误消息,可以准确地指出问题所在。
这有帮助吗?
一旦通过检查命令行确定您知道正确的参数,您就可以返回使用 xampp 或其他任何东西。(当出现异常时,请务必使用命令行进行检查——这比尝试通过其他接口进行调试要容易得多。)