DBeaver、Navicat、MySQL高頻報錯及解決方法,此文持續更新

中了毒蛇粉的貓發表於2021-04-11

電腦配置:系統64位win10,MySQL8.0.16

第一坑,沒有用管理員身份

第一次登入,開啟cmd,執行net start mysql
報錯:發生系統錯誤5
錯誤原因:沒有用管理員身份執行cmd

第二坑,MySQL 服務無法啟動

用管理員身份執行cmd,執行net start mysql
報錯:

MySQL 服務正在啟動
MySQL 服務無法啟動
服務沒有報告任何錯誤

錯誤原因:

  1. MySQL安裝時沒有配置系統環境變數
  2. MySQL安裝目錄下沒有my.ini配置檔案
  3. 沒有初始化MySQL(沒有執行mysqld --initialize),執行後會在安裝目錄下生成data資料夾

1. MySQL安裝時沒有配置系統環境變數
可以參考文章:為什麼需要配置環境變數

解決方法:

  1. 小娜搜尋path(或者我的電腦->屬性->高階系統屬性->高階->環境變數->path),新建系統變數,
    變數名:MYSQL_HOME,變數值:C:\Program Files\MySQL\MySQL Server 8.0(安裝資料夾路徑)


2. path裡新建環境變數:%MYSQL_HOME%\bin
3. 以管理員身份執行cmd,命令切換到MySQL安裝路徑下的bin資料夾:cd C:\Program Files\MySQL\MySQL Server 8.0\bin

2. MySQL安裝目錄下沒有my.ini配置檔案

解決方法:

  1. 在桌面新建my.ini檔案,然後複製到MySQL安裝資料夾下(c盤下面修改檔案可能會有許可權問題,可以換個角度從桌面複製檔案到該資料夾下)
  2. my.ini檔案內容

[mysql]
; 設定mysql客戶端預設字符集
default-character-set=utf8
[mysqld]
;設定3306埠
port = 3306
; 設定mysql的安裝目錄
basedir=C:\Program Files\MySQL\MySQL Server 8.0
; 設定mysql資料庫的資料的存放目錄
datadir=C:\Program Files\MySQL\MySQL Server 8.0\data
; 允許最大連線數
max_connections=200
; 服務端使用的字符集預設為8位元編碼的latin1字符集
character-set-server=utf8
; 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB

3. 沒有初始化MySQL(沒有執行mysqld --initialize),執行後會在安裝目錄下生成data資料夾

解決方法:
注:使用mysqld --initialize命令前,不要自己建立data目錄,有data目錄就先刪除,
再使用mysqld --initialize,否則無法正常生成全部data目錄檔案。

第三坑,報錯:ERROR 1045 (28000): Access denied for user 'root'@'localhost'

服務啟動之後,執行mysql -u root -p
報錯:ERROR 1045 (28000): Access denied for user 'root'@'localhost'

ERROR 1045 (28000): Access denied for user 'root'@'localhost'
翻譯一下:錯誤 1045 (28000): 使用者"根"@"本地"的訪問被拒絕(使用密碼:是)

類似經典案例
Navicat 連線MySQL資料庫出現錯誤:ERROR 1045 (28000): Access denied for user 'root'@'localhost'
錯誤原因:沒有安裝 MySQL
解決方法:mysql 8.0.20 winx64安裝配置方法圖文教程

4種錯誤原因:

  1. MySQL的伺服器停止了
  2. 使用者的埠號或者IP導致拒絕訪問
  3. MySQL的配置檔案錯誤(my.ini等檔案)
  4. root使用者的密碼錯誤

1.MySQL的伺服器停止了

解決方法:
重啟MySQL伺服器:net start mysql

2.使用者的埠號或者IP導致拒絕訪問

解決方法:

  • 若使用者的埠號與IP(3306/3307)不一致,開啟my.ini檔案進行編輯。全部編輯替換為: port=X,3306~3309可選
  • my.ini檔案可自己建立

3.MySQL的配置檔案錯誤(my.ini等檔案)

解決方法:
my.ini檔案配置錯誤,可以參考以下文章,該檔案已對my.ini檔案進行了解釋和註釋。my.ini檔案配置說明書

4.root使用者的密碼錯誤

解決方法:密碼錯誤的話,這裡有兩種解決方法

  1. MySQL安裝路徑下data檔案,用記事本開啟.err字尾的檔案,裡面有密碼。A temporary password is generated for root@localhost: 隨機密碼

  1. –init-file引數在服務啟動時載入並執行修改密碼的命令檔案,該命令一旦執行,服務啟動後密碼即已經清除或者重置,啟動服務後即可以空密碼或指定密碼登入。
  • 先關掉伺服器:net stop mysql
  • 建立一個文字檔案mysql.txt,內容:ALTER USER "root"@"localhost" IDENTIFIED BY "你的新密碼";
  • 以管理員身份執行cmd,執行mysqld --init-file=C:\Program Files\MySQL\MySQL Server 8.0\mysql.txt --console
  • 重啟伺服器:net start mysql
  • 執行:mysql -u root -p
  • 輸入新密碼就可以了

第四坑,MySQL8.0後修改密碼跟以前不一樣

輸入隨機密碼後,可以修改密碼
注意,MySQL8.0後修改密碼跟以前不一樣,親測下面程式碼可用

ALTER USER "root"@"localhost" IDENTIFIED BY "你的新密碼";

參考:
[1]:https://www.yixuebiancheng.com/article/61525.html
[2]:https://www.jb51.net/article/186310.htm
[3]:https://blog.csdn.net/lienfeng6/article/details/78140404

相關文章