Ubuntu忘记mysql密码,重置密码

在 Ubuntu 中,如果你忘记了 MySQL 数据库密码,可以通过以下步骤进行重置。


  1. 停止 MySQL 服务。
    sudo systemctl stop mysql

  2. 启动 MySQL 服务,并跳过权限检查。
    sudo mysqld_safe --skip-grant-tables &
    此操作会启动 MySQL 服务并跳过权限检查,允许任何人以任何身份访问 MySQL 数据库。
    可能会出现以下问题

(base) tanspring@tanspring-X570-UD:/var/log$ 2024-03-04T09:01:49.912250Z mysqld_safe Logging to syslog.2024-03-04T09:01:49.914947Z mysqld_safe Logging to '/var/log/mysql/error.log'.2024-03-04T09:01:49.917133Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

报错指出不存在 /var/run/mysqld 目录用于 UNIX 套接字文件。
在这种情况下,你需要按照以下步骤解决问题:
创建 /var/run/mysqld 目录:
sudo mkdir -p /var/run/mysqld
确保该目录的权限正确设置:
sudo chown mysql:mysql /var/run/mysqld
然后重新运行命令:sudo mysqld_safe --skip-grant-tables &

  1. 登录 MySQL。
    mysql -u root

  2. 使用以下命令更新 MySQL 用户的密码(在这里,new_password 是你想设置的新密码)。
    UPDATE mysql.user SET authentication_string = 'new_password' WHERE User = 'root';
    FLUSH PRIVILEGES;
    exit;

  3. 停止 MySQL 服务。
    sudo systemctl stop mysql

  4. 启动 MySQL 服务。
    sudo systemctl start mysql

出现一直启动不起来,查看日志 /var/log/mysql/error.err

2024-03-04T08:57:00.394904Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
2024-03-04T08:57:01.394985Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11

这个错误表明无法获取 ./ibdata1 的锁定,可能有两种原因:


  1. 其他MySQL进程正在运行并占用了相同的 InnoDB 数据或日志文件。


  2. 上一次 MySQL 进程异常退出,导致文件锁没有正确释放。
    首先,你可以尝试找出是否有其他 MySQL 进程正在运行。可以运行以下命令检查:
    ps aux | grep mysql
    如果看到类似于 mysqldmysql 的进程,可以尝试将其关闭。可以使用以下命令终止进程:
    sudo kill <进程ID>
    再次重新启动 MySQL 服务,使用mysql -u root -p,使用新设置的密码登录




白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论