【问题标题】:Access denied for root user in MySQL command-lineMySQL命令行中root用户的访问被拒绝
【发布时间】:2012-07-30 09:41:51
【问题描述】:

我刚刚安装了 xampp,并且正在使用命令行编写 mySQL。 我正在使用没有密码的“root”,可以连接到 mysql,但不能CREATE DATABASE,因为我收到错误1044 access denied for user '' @ 'localhost'。我以-uroot 登录。

我在 phpMyadmin 中有权限做我想做的事,但是,在命令行中我似乎没有写权限。我查看了有关此主题的所有其他相关帖子,但无济于事。我不能授予权限,因为我没有任何权限。

【问题讨论】:

  • 在MySQL命令行工具上,点击后会打开并要求输入密码,你能成功登录吗?
  • 嗨。没有提示我输入任何内容,我只是导航到 C:\xampp\mysql\bin\mysql -u root;
  • 这会返回“Welcome to mySQL monitor”等。然后如果我输入 SHOW DATABASES 我会得到 +--------------------+|Database |+----------------+|Information_schema|+--------------------------------+|测试||+-- --------------+,所以我连接到 MySQL
  • 但是当我尝试创建数据库时,我收到“拒绝访问”错误
  • 我投票结束这个问题,因为它与编程无关。

标签: mysql command-line xampp


【解决方案1】:

您是否以 root 身份登录 MySQL?在以 MySQL root 身份登录时,您必须明确授予“常规” MySQL 用户帐户的权限。

首先为您的 MySQL 数据库设置一个 root 帐户。

在终端类型中:

mysqladmin -u root password 'password'

要登录 MySQL,请使用:

mysql -u root -p

要设置权限,使用 skip-grant-tables 选项手动启动服务器,打开 mysql 客户端并手动更新 mysql.user 表和/或 mysql.db 表。不过,这可能是一项乏味的任务,因此,如果您需要一个具有所有权限的帐户,我会执行以下操作。

使用skip-grant-tables 选项启动服务器

启动mysql客户端(没有用户名/密码)

发出命令

flush privileges;

这会强制加载授权表。

使用类似这样的 GRANT 命令创建一个新帐户(但将用户名和密码替换为您想要使用的任何内容。

GRANT ALL on *.* to 'username'@'localhost' identified by 'password';

以正常模式重新启动服务器(没有跳过授权表)并使用您新创建的帐户登录。

请参阅this MySQL 文档。

【讨论】:

  • 谢谢,雅各布。实际上我重新安装了 ODBC 连接器 msi 并直接重新安装了 mySQL(除了 xampp),它现在可以工作了。我认为这是一个连接器问题,因为 SHOW DATABASES 实际上根本没有显示我的数据库。我的“root”登录名无法访问数据库,这使它看起来权限有限,但连接不正确。不过,这是有用的东西 - 谢谢。
  • 我的一个朋友(他还是 mysql 的新手)在created user root... 之后遇到了同样的问题。
【解决方案2】:

导航到 C:\xampp\mysql\bin\ 并确保文件 mysql.exe 在该文件夹中。

mysql -uroot -p

如果没有密码,请按回车键。

提示变为

mysql>

执行你的mysql命令

【讨论】:

  • 顺便说一句,我使用的是 windows 命令行,现在使用的是 mysql 命令行。无论哪种方式,它们都是一样的
  • @gavin 你能运行这个命令“SELECT USER(),CURRENT_USER();” ?
  • 用户:ODBC@localhost,CURRENT_USER:@localhost
  • 你需要让这个命令以 root 身份登录:"mysql -uroot -p" ... -u 和 root 之间没有空格
  • 确保启动 xampp 服务。
【解决方案3】:

默认情况下,XAMPP 中没有为 root 用户设置密码。

您可以为 MySQL 的 root 用户设置密码。

导航到

localhost:80/security/index.php

并为root用户设置密码。

注意:如果你的 Apache 在不同的端口,请更改上面 url 中的端口号。

打开XAMPP控制面板点击“Shell”按钮

命令提示符窗口现在将以该窗口类型打开

mysql -u root -p;

它会要求输入您为root用户设置的密码。

你以root用户身份登录:D现在做你想做的事:P

【讨论】:

    【解决方案4】:

    获得对 MariaDB 10 数据库服务器的访问权限

    停止数据库服务器后,下一步是通过启动数据库服务器并跳过网络和权限表来通过后门访问服务器。这可以通过运行以下命令来完成。

    sudo mysqld_safe --skip-grant-tables --skip-networking &
    

    重置 MariaDB 根密码

    现在数据库服务器以安全模式启动,运行以下命令以 root 身份登录,无需密码提示。为此,请运行以下命令

    sudo mysql -u root
    

    然后运行下面的命令来使用mysql数据库。

    use mysql;
    

    最后,运行以下命令重置root密码。

    update user set password=PASSWORD("new_password_here") where User='root';
    

    new_password _here 替换为您要为 root 帐户创建的新密码,然后按 Enter。

    之后,运行以下命令以更新权限并将更改保存到磁盘。

    flush privileges;
    

    退出 (CTRL + D) 就完成了。

    接下来正常启动MariaDB,测试刚刚创建的新密码。

    sudo systemctl stop mariadb.service
    sudo systemctl start mariadb.service
    

    通过运行以下命令登录到数据库。

    sudo mysql -u root -p
    

    来源:https://websiteforstudents.com/reset-mariadb-root-password-ubuntu-17-04-17-10/

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题,原来是 MariaDB 被设置为只允许 root 通过 unix_socket 插件在本地登录,所以清除该设置允许使用命令行上指定的用户成功登录,当然,前提是输入了正确的密码。 看到这个answer on Ask Ubuntu

      【讨论】:

      • 请注意,从 MariaDB 10.4 开始,可以设置用户帐户,以便他们可以使用多种身份验证方法之一进行登录。请参阅stackoverflow.com/a/65544967/9758383
      【解决方案6】:

      我重新安装了 ODBC 连接器 msi 并直接重新安装了 mySQL(除了 xampp),它现在可以工作了。我认为这是一个连接器问题,因为 SHOW DATABASES 实际上根本没有显示我的数据库。

      我的“root”登录名无法访问数据库,这使它看起来权限有限,但实际上连接不正确。

      【讨论】:

        【解决方案7】:

        服务器文件只更改名称文件夹

        etc/mysql
        rename
        mysql-
        

        【讨论】:

        • 能否请您澄清一下,您的意思是什么?
        【解决方案8】:

        这可能对 Ubuntu 有所帮助:

        转到 /etc/mysql/my.cnf 并评论这一行:

        bind-address           = 127.0.0.1
        

        希望这对某人有所帮助,我也一直在寻找这个东西

        干杯

        【讨论】:

          【解决方案9】:

          -u 和用户名之间不能有空格:

          mysql -uroot -p
          # or
          mysql --user=root --password
          

          【讨论】:

          • 嗨。我刚刚尝试过,我仍然得到同样的错误。它应该说:“'root'@'localhost' 的访问被拒绝”吗?而不是用户:''?我不确定我是否以“root”身份登录
          猜你喜欢
          • 2019-01-29
          • 2013-08-22
          • 1970-01-01
          • 2013-11-25
          • 2011-11-24
          • 2021-06-26
          • 2020-11-13
          • 1970-01-01
          • 2013-08-22
          相关资源
          最近更新 更多