AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 4309
Accepted
slolife
slolife
Asked: 2009-05-05 12:45:46 +0800 CST2009-05-05 12:45:46 +0800 CST 2009-05-05 12:45:46 +0800 CST

如何重置或恢复 MySQL 的管理员帐户密码?

  • 772

我有一个“继承”的 MySQL 数据库,但没有获得管理员凭据。但是,我确实可以访问它运行的盒子。有没有办法恢复管理员凭据或创建新凭据?

mysql password reset
  • 4 4 个回答
  • 13473 Views

4 个回答

  • Voted
  1. Best Answer
    David Schmitt
    2009-05-05T12:50:05+08:002009-05-05T12:50:05+08:00

    阅读并执行MySQL 参考手册中有关重置 root 密码的章节。

    此过程在未经授权的情况下启动 mysql 守护程序,允许您在不提供凭据的情况下进行连接。在此模式下,您可以正常连接,并重置密码和授权。之后不要忘记在适当的授权下再次启动 mysql。

    • 15
  2. Brent
    2009-05-05T14:49:00+08:002009-05-05T14:49:00+08:00

    如果这是 Debian/Ubuntu 机器,则有一个特殊的 root 等效帐户,称为debian-sys-maint。您可以在/etc/mysql/debian.cnf中读取密码

    使用该密码,您可以使用以下命令以 debian-sys-maint 身份登录 mysql:

    mysql --defaults-file=/etc/mysql/debian.cnf mysql
    

    登录后,请执行以下操作:

    update user set password=password('<new password>') where user='root';
    flush privileges;
    quit;
    

    现在应该可以使用您的新密码访问 root:

    mysql -uroot -p
    
    • 6
  3. the
    2013-08-15T10:48:15+08:002013-08-15T10:48:15+08:00

    我的根用户不存在。上

    CREATE USER root@localhost;
    

    我有

    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
    

    解决方案是

    mysqld_safe  --skip-grant-tables &
    mysql
    INSERT INTO user (Host,User,Password) VALUES ('localhost', 'root', 'changethispassword');
    UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
    FLUSH PRIVILEGES;
    

    之后,我在此帮助下一一添加了所有权限:

    mysql mysql -e "SELECT * FROM user WHERE User='root'\G"|grep N
    

    (这个可以而且应该更加自动化)

    注意:在 中找到正确数量的“Y”INSERT是 PITA。

    • 4
  4. Saurabh Hooda
    2014-07-23T08:14:24+08:002014-07-23T08:14:24+08:00

    由于MySQL 参考手册上的步骤不是很清楚,我试图用更简单的语言在这里回答。(这个答案与 MacBook OSX 用户有关):

    1. 由于我们不知道当前密码,MySQL 服务器需要运行跳过/绕过当前登录凭据。通过以下方式指示 MySQL 服务器跳过访问授权表:
      • 停止您的 MySQL 服务器(如果它已经在运行)。
      • 找到你的 MySQL 配置文件,my.cnf. (对我来说,它被放置在 @ /Applications/XAMPP/xamppfiles/etc。如果找不到,您可以搜索)。
      • my.cnf在任何文本编辑器中 打开文件。
      • "skip-grant-tables"在部分末尾添加(不带引号)[mysqld]并保存文件。
      • 现在启动你的 MySQL 服务器。它将从skip-grant-tables选项开始。
    2. 打开Terminal并运行mysql命令
    3. 执行命令mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    4. 执行命令mysql> FLUSH PRIVILEGES;
    5. 执行命令mysql> exit
    6. 重启 MySQL 服务器。
    • 0

相关问题

  • 从 MySQL 迁移到 SQL Server 的最佳方法或工具

  • 密码未知时获得访问权限的最佳方法是什么?

  • 您如何跟踪和调试 mySQL 性能问题?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • 如何选择 MySQL 数据库引擎

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve