MySQL 第一次随机密码无法登陆

背景

MySQL 是一种广泛使用的关系型数据库管理系统,被广泛应用于各种Web应用。在安装 MySQL 后,首次登录时会生成一个随机密码,这个密码是随机生成的,一般比较复杂,对于初次使用 MySQL 的用户来说,这个密码可能会导致无法登录的问题。

问题描述

在安装 MySQL 后,首次登录时会生成一个随机密码,如下所示:

$ mysql -u root -p
Enter password: ******

初始密码是随机生成的,安装过程中会将密码保存到一个文件中。但是,如果用户忘记了初始密码,或者在登录时输入错误的密码,就无法登录到 MySQL 服务。这个问题对于初次使用 MySQL 的用户来说是非常普遍的。

解决方法

MySQL 提供了一种简单的方法来解决这个问题,可以通过修改 MySQL 的配置文件来重置密码。在 Linux 系统上,MySQL 的配置文件一般位于 /etc/mysql/mysql.conf.d/mysqld.cnf,在 Windows 系统上,一般位于 C:\ProgramData\MySQL\MySQL Server 8.0

以下是重置密码的步骤:

  1. 停止 MySQL 服务。

    在 Linux 系统上,可以使用以下命令停止 MySQL 服务:

    $ sudo service mysql stop
    

    在 Windows 系统上,可以在服务管理中停止 MySQL 服务。

  2. 修改 MySQL 配置文件。

    打开 MySQL 的配置文件,在 [mysqld] 一节中添加一行 skip-grant-tables,保存并退出。

    $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    

    MySQL Config

    mermaid erDiagram USER ||--o| ACCOUNT : "登录" ACCOUNT ||--o| PASSWORD : "使用" PASSWORD ||--o| DATABASE : "连接" USER ||--o| PERMISSION : "授权"

  3. 启动 MySQL 服务。

    在 Linux 系统上,可以使用以下命令启动 MySQL 服务:

    $ sudo service mysql start
    

    在 Windows 系统上,可以在服务管理中启动 MySQL 服务。

  4. 使用空密码登录 MySQL。

    $ mysql -u root
    
  5. 修改密码。

    使用以下命令修改密码:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

    其中,root 是用户名,localhost 是主机名,new_password 是新密码。

  6. 移除 MySQL 配置文件中的 skip-grant-tables 行。

    打开 MySQL 的配置文件,删除 [mysqld] 一节中的 skip-grant-tables 行,保存并退出。

    $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    
  7. 重启 MySQL 服务。

    在 Linux 系统上,可以使用以下命令重启 MySQL 服务:

    $ sudo service mysql restart
    

    在 Windows 系统上,可以在服务管理中重启 MySQL 服务。

现在,您应该可以使用新密码登录到 MySQL 服务了。

总结

MySQL 的初始随机密码可能会导致无法登录的问题,但通过修改 MySQL 的配置文件来重置密码是一个简单而有效的解决方法。希望本文能帮助初次使用 MySQL 的用户解决这个问题。

参考链接:

  • [MySQL 8.0 Reference Manual](