8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

拒绝用户‘root’@‘localhost’访问(使用密码:是)-没有权限?

Stuart 1月前

212 0

我不断收到此错误。我正在使用 mySQL Workbench,我发现 root 的架构权限为空。根本没有权限。我遇到了麻烦

我不断收到此错误。

我正在使用 mySQL Workbench,我发现 root 的架构权限为空。根本没有权限。

我在使用我的服务器的跨平台上遇到了麻烦,这是一个突然出现的问题。

[email protected] 显然具有很多访问权限,但我以此身份登录,但它只是分配给本地主机 - 本地主机没有权限。

我已做了一些事情,例如 FLUSH HOSTS , FLUSH PRIVILEGES ,等等,但从这些事情或互联网上均未发现任何成功。

我如何才能重新获得 root 的访问权限?我觉得这很令人沮丧,因为当我环顾四周时,人们都希望你“有访问权限”,但我却没有访问权限,所以我无法进入命令行或任何东西, GRANT 我自己也无法做任何事情。

运行时 SHOW GRANTS FOR root 我得到的结果是:

错误代码:1141。主机“%”上没有为用户“root”定义此类授权

帖子版权声明 1、本帖标题:拒绝用户‘root’@‘localhost’访问(使用密码:是)-没有权限?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Stuart在本站《mysql》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您正在尝试使用 MySQL Workbench 从本地主机或其他主机访问数据库吗?

  • 使用 --skip-grant-table 重新启动服务器,使用任何用户登录,并向 root 提供完全权限,然后在不使用上述选项的情况下再次重新启动服务器

  • 使用 重置 root 密码的说明 - 但不是重置 root 密码,而是强制将记录插入 mysql.user 表中

    在 init 文件中,改用此文件

    INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
    GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
    
  • 对不起 Andy,但当我进行到第 6 步时,我不断遇到问题。由于我确实使用了安装向导,因此我将使用 \'C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe\' --defaults-file=\'C:\\Program Files\\MySQL\\MySQL Server 5.6\\my.ini\' --init-file=C:\\mysql-init.txt 所有内容都在其应在的位置,并且您上面所写的内容我已相应地放入文件中。我也已停止服务。我只得到此输出:prntscr.com/1ilxau 并且所有内容(插件)都已关闭。真令人困惑。

  • 令我惊讶的是,我并没有这样做。在我这样做之后,我得到了这个 prntscr.com/1imcnj - 第一次我在他们自己的行上做了这件事(从粘贴中),然后我把它全部放在一行上。很抱歉,这对我来说太令人困惑了,而不是 sql 专家本身。

  • 它给出:错误 1054 (42S22):'字段列表' 中未知的列'密码' 错误。@AndyJones

  • @AndyJones 使用 'Authentication_string' 代替密码

  • 如果您在 MySql 5.7.+ 中遇到同样的问题:

    Access denied for user 'root'@'localhost'
    

    这是因为 MySql 5.7 默认允许使用套接字连接,这意味着您只需使用 连接即可 sudo mysql 。如果您运行 sql :

    SELECT user,authentication_string,plugin,host FROM mysql.user;
    

    然后你就会看到它:

    +------------------+-------------------------------------------+-----------------------+-----------+
    | user             | authentication_string                     | plugin                | host      |
    +------------------+-------------------------------------------+-----------------------+-----------+
    | root             |                                           | auth_socket           | localhost |
    | mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
    +------------------+-------------------------------------------+-----------------------+-----------+
    4 rows in set (0.00 sec)
    

    要允许使用 root 和密码连接,请使用命令更新表中的值:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';
    FLUSH PRIVILEGES;
    

    然后再次运行选择命令,你会看到它已经发生了变化:

    +------------------+-------------------------------------------+-----------------------+-----------+
    | user             | authentication_string                     | plugin                | host      |
    +------------------+-------------------------------------------+-----------------------+-----------+
    | root             | *2F2377C1BC54BE827DC8A4EE051CBD57490FB8C6 | mysql_native_password | localhost |
    | mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
    +------------------+-------------------------------------------+-----------------------+-----------+
    4 rows in set (0.00 sec)
    

    就这样。运行并完成 sudo mysql_secure_installation 命令后,您就可以运行此过程。

    对于 mariadb,使用

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');
    

    设置密码。更多信息请访问 https://mariadb.com/kb/en/set-password/

  • 从 auth_socket 更新到 mysql_native_password 解决了我的问题。谢谢!

  • 试图弄清楚这一点绝对令人恼火,而且浪费了大量时间。我希望他们在 mysql_secure_installation 期间问这个问题。非常感谢你的回答。

  • 我这样做了,但表条目以同样的方式更改,但密码仍然不起作用。此外,sudo mysql_secure_installation 也会提示输入密码。

  • Guss 1月前 0 只看Ta
    引用 13

    它不喜欢我的用户权限,所以我用 SUDO 对其进行了设置。(在 bash << sudo 设置用户和密码中)(这给出了 root 的用户名并将密码设置为无)(在 Mac 上)

    sudo mysql -uroot -p
    
  • 尝试以下命令

    ~$ sudo /etc/init.d/mysql stop
    ~$ sudo mysqld_safe --skip-grant-tables &
    ~$ mysql -u root
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    
    Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql>
    
    mysql> use mysql;
    
    mysql> update user set password=PASSWORD("root") where User='root';
    
    mysql> flush privileges;
    
    mysql> quit
    
    ~$ sudo /etc/init.d/mysql stop
    
    Stopping MySQL database server: mysqld
    
    STOPPING server from pid file /var/run/mysqld/mysqld.pid
    
    mysqld_safe[6186]: ended
    
    [1]+  Done                    mysqld_safe --skip-grant-tables
    
    ~$ sudo /etc/init.d/mysql start
    
    ~$ mysql -u root -p
    
    * MySQL Community Server 5.6.35 is started
    ~$ mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1
    Server version: 5.6.35 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> 
    
  • 在MySQL 5.7中,mysql.user表字段中的密码字段被删除,现在字段名称为'authentication_string'。

  • 对于较新版本的 mysql,他们将密码列名称更改为 authentication_string

  • sudo mysqld_safe 给我这个 /var/run/mysqld 因为 UNIX 套接字文件不存在,然后在 mkdir -p /var/run/mysqld 和 sudo chown -R mysql:mysql /var/run/mysqld/ 之后它起作用并启动了守护进程。

  • 引用 18

    错误 2002 (HY000): 无法通过套接字“/var/run/mysqld/mysqld.so”连接到本地 MySQL 服务器

  • 对于 Systemd 发行版上的 Mysql 8+(可能也适用于 Mysql 5.7,无论是 Centos Rocky 还是 Ubuntu),当您卡在 mysqld_safe 运行中并且无法使用 sudo /etc/init/d/mysql stop 停止它时,请以 root 身份运行 # mysqladmin shutdown。请参阅 .com/a/53086515

  • 对于在 mysql 5.7+ 版本中遇到以下错误的人 -

    Access denied for user 'root'@'localhost' (using password: YES)
    
    1. p1

    2. p2

    3. p3

    grep:写入错误:管道损坏180102 11:32:28 mysqld_safe 记录到‘/var/log/mysql/error.log’。

    只需按 Ctrl+Z 或 Ctrl+C 即可中断并退出进程

    1. mysql -u root

    欢迎使用 MySQL 监视器。命令以 ; 或 \g 结尾。您的 MySQL 连接 ID 是 2服务器版本:5.7.8-rc MySQL 社区服务器 (GPL)

    版权所有 (c) 2000, 2015,Oracle 和/或其附属公司。保留所有权利。

    Oracle 是 Oracle Corporation 及其附属公司的注册商标。其他名称可能是其各自所有者的商标。

    输入“help;”或“\h”获取帮助。输入“\c”清除当前输入语句。

    1. mysql> use mysql;

    读取表信息以完成表和列名您可以关闭此功能以使用-A更快地启动

    数据库已更改

    1. p12

    2. p13

    3. p14

    4. sudo /etc/init.d/mysql stop

    ..180102 11:37:12 mysqld_safe mysqld 来自 pid 文件 /var/run/mysqld/mysqld.pid 结束。 * MySQL Community Server 5.7.8-rc 已停止arif@ubuntu:~$ sudo /etc/init.d/mysql start.. * MySQL Community Server 5.7.8-rc 已启动

    1. mysql -u root -p

      p16

      p17

    在 mysql 5.7+ 版本之后,mysql.user 表中的列 password 被名称 authentication_string 取代。

    希望这些步骤能够帮助任何人,谢谢。

返回
作者最近主题: