登录时出现 mysql 服务器 8.0 密钥环迁移错误

Nic*_*Liu 9 mysql windows

我在 Windows 10 上使用 MySQL Server 8.0。我按照本教程进行初始化。

C:\Program Files\MySQL\MySQL Server 8.0\bin
? mysqld --initialize
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用临时密码登录时,出现如下所示的密钥环迁移错误:

C:\Program Files\MySQL\MySQL Server 8.0\bin
? mysqld -u root -p
Enter password: **********
mysqld: Can not perform keyring migration : Invalid --keyring-migration-source option.
2018-07-20T18:49:20.794197Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.11) starting as process 21312
2018-07-20T18:49:20.801815Z 0 [ERROR] [MY-011084] [Server] Keyring migration failed.
2018-07-20T18:49:20.824651Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-07-20T18:49:20.829415Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.11)  MySQL Community Server - GPL.
Run Code Online (Sandbox Code Playgroud)

我自己没有安装任何与密钥环相关的插件。有没有办法跳过或通过此密钥环迁移?

小智 12

  1. 在 Windows 上安装后。查找已安装文件夹的路径。

    例子:

    C:\Program Files\MySQL\MySQL Server 8.0\bin
    
    Run Code Online (Sandbox Code Playgroud)
  2. 打开 cmd 并cd转到上面的路径。

  3. 类型

    mysqld --initialize-insecure --console
    
    Run Code Online (Sandbox Code Playgroud)

    它将在没有密码的情况下手动初始化数据文件夹到 root。

    对于初学者,我建议使用此选项

    mysqld --initialize --console
    
    Run Code Online (Sandbox Code Playgroud)

    它将使用随机密码手动初始化数据文件夹为root。

    在此之后,您可能会遇到如下错误:

    • 无法创建数据文件夹。为此,请尝试像这样指定数据路径:

      mysqld --initialize-insecure
             --basedir=specify your path/mysql/mysql
             --datadir=specify your path/mysql/data
      
      Run Code Online (Sandbox Code Playgroud)
    • 或者数据文件夹已经存在。为此,请转到该文件夹​​并删除数据文件夹。

    • 或者,对于现在更高的版本,在数据文件夹中已经存在一个名为my.ini. 为此,复制该文件并将其粘贴到C:\Program Files\MySQL\MySQL Server 8.0\(您可以在此处进行更多更改并指定数据和基本目录的路径)

  4. 现在您已成功初始化,无需任何密码。
    启动服务器。

    mysqld --console
    
    Run Code Online (Sandbox Code Playgroud)

    注意:您可以定义系统环境变量的路径(在 Google 上搜索如何操作),之后您不必每次都走这条路径。

    现在您的服务器已启动并运行。

    mysqld: ready for connections
    Version: '8.0.15'  socket: ''  port: 3306
    
    Run Code Online (Sandbox Code Playgroud)
  5. 现在使用命令:

    mysql -u root --skip-password
    
    Run Code Online (Sandbox Code Playgroud)

    进而

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    
    Run Code Online (Sandbox Code Playgroud)

    此命令用于设置 root 密码。

  6. 下次使用

    mysql -u root -p
    
    Run Code Online (Sandbox Code Playgroud)

    然后输入你 new_password


小智 10

尝试使用mysql -u root -p而不是mysqld - u root -p