我在 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
在 Windows 上安装后。查找已安装文件夹的路径。
例子:
C:\Program Files\MySQL\MySQL Server 8.0\bin
Run Code Online (Sandbox Code Playgroud)
打开 cmd 并cd转到上面的路径。
类型
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\(您可以在此处进行更多更改并指定数据和基本目录的路径)
现在您已成功初始化,无需任何密码。
启动服务器。
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)
现在使用命令:
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 密码。
下次使用
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
然后输入你 new_password