參考:
2. windows下安裝mysql ,在starting server時卡住,解決方法(親測有效!)
3. mysql安裝:“root@localhost is created with an empty password !”,而非A temporary password is generated for
5. 解決Navicat for MySQL 連接 Mysql 8.0.11 出現1251- Client does not support authentication protocol 錯誤
【問題一】: [Server] Failed to set datadir to 'C:\Program Files\MySQL\MySQL Server 8.0\data\' (OS errno: 2 - No such file or directory)
探索【解決方案】:
1 PS C:\Program Files\MySQL\MySQL Server 8.0\bin> net start mysql 2 服務名無效。 3 4 請鍵入 NET HELPMSG 2185 以獲得更多的幫助。 5 6 PS C:\Program Files\MySQL\MySQL Server 8.0\bin> net start mysql80 7 MySQL80 服務正在啟動 . 8 MySQL80 服務已經啟動成功。
由上面的 兩條命令,可以得出,在安裝時,所填寫的 服務名 在服務啟動時 需要對應, 即 我安裝時的服務名為mysql80(建議安裝時,直接填寫mysql就好了)
緊接着有新的問題出現:
【問題二】:
PS C:\Program Files\MySQL\MySQL Server 8.0\bin> mysql -u root -p
Enter password: ****
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
【解決方案】:
需要執行命令 mysqld --initialize --console
有效果:
1 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 2 PS C:\Program Files\MySQL\MySQL Server 8.0\bin> mysqld --initialize --console 3 2020-07-18T23:11:16.118917Z 0 [System] [MY-013169] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.21) initializing of server in progress as process 11604 4 2020-07-18T23:11:16.154028Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 5 2020-07-18T23:11:16.816647Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 6 2020-07-18T23:11:18.026729Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rdUko8M6sv(*
【問題三】:運用 隨機生成的 密碼,無法登陸mysql
2020-07-18T23:11:18.026729Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rdUko8M6sv(*
PS C:\Program Files\MySQL\MySQL Server 8.0\bin> mysql -u root -p
Enter password: **********
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
探索【解決方案】:
PS C:\Program Files\MySQL\MySQL Server 8.0\bin> net start mysql MySQL 服務正在啟動 . MySQL 服務無法啟動。 PS C:\Program Files\MySQL\MySQL Server 8.0\bin> net stop mysql80 MySQL80 服務正在停止. MySQL80 服務已成功停止。 // 手動刪除 data文件 // 再次執行命令 mysqld --initialize --console PS C:\Program Files\MySQL\MySQL Server 8.0\bin> mysqld --initialize --console 2020-07-18T23:18:19.879859Z 0 [System] [MY-013169] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.21) initializing of server in progress as process 5672 2020-07-18T23:18:19.891863Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2020-07-18T23:18:20.462623Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2020-07-18T23:18:22.557307Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: _t2kuyQi*B4t PS C:\Program Files\MySQL\MySQL Server 8.0\bin> net start mysql MySQL 服務正在啟動 . MySQL 服務已經啟動成功。 PS C:\Program Files\MySQL\MySQL Server 8.0\bin> mysql -u root -p Enter password: ************ Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.21 Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> alter user 'root'@'localhost' identified by 'root'; Query OK, 0 rows affected (0.02 sec)
以上完成了 5 步操作:
(1)停掉 mysql80服務;
(2)mysql 安裝目錄,刪去 data;
(3)重新初始化mysql,同時生成隨機的登陸密碼;
(4)利用隨機密碼登錄;
(5)修改登錄密碼。
圓滿 安裝 mysql-installer-community-8.0.21.0.msi
【navicat 管理mysql】
【問題四】: Navicat for MySQL 連接 Mysql 8.0.11 出現1251- Client does not support authentication protocol 錯誤
【解法】:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密規則 ('password'是你設置的mysql的登錄密碼,我的是root,進行替換)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用戶的密碼
FLUSH PRIVILEGES; #刷新權限(可能不需要,我就沒有執行刷新,也成功了)