首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 命令行登錄閃退、服務未啟動問題排查:缺少服務註冊導致

     編輯:MySQL 綜合教學

MySQL 命令行登錄閃退、服務未啟動問題排查:缺少服務註冊導致

現象:mysql -uroot -p 輸入密碼後窗口即刻關閉(閃退),任務管理器中無 mysqld 進程,手動啟動服務提示「拒絕訪問」。

根因分析

MySQL 服務未註冊到 Windows 服務管理器。免安裝包或手動部署時,未執行 mysqld --install,導致:

  1. 無 Windows 服務入口,net start mysql 失效
  2. 命令行客戶端連接本地服務時,發現服務未運行,直接退出
  3. 權限不足無法創建服務(需管理員權限)

解決步驟(需管理員權限 CMD/PowerShell)

  1. 進入 MySQL bin 目錄
    cd C:\mysql\bin
  2. 註冊服務
    mysqld --install MySQL
    # 或指定配置文件
    mysqld --install MySQL --defaults-file="C:\mysql\my.ini"

    提示 Service successfully installed.

  3. 啟動服務
    net start MySQL

    提示 MySQL 服務已成功啟動。

  4. 驗證登錄
    mysql -uroot -p
    # 輸入密碼進入 mysql> 提示符

卸載服務(遷移/重裝時)

net stop MySQL
mysqld --remove MySQL

常見伴隨問題

現象原因解決
錯誤 1067 進程意外終止my.ini 配置錯誤(basedir/datadir 路徑、字符集、SQL 模式)查看 data 目錄下 .err 日誌定位具體行
錯誤 2 系統找不到文件myswld 路徑錯誤、未在 bin 目錄執行、my.ini 路徑錯誤cd bin 目錄、絕對路徑指定 --defaults-file
Can't connect to MySQL server on 'localhost'服務未啟動、端口不匹配、skip-networking 開啟net start、檢查 my.ini port、註釋 skip-networking
Access denied for user 'root'@'localhost'密碼錯誤、權限表損壞、跳過授權表啟動--skip-grant-tables 重置密碼

最佳實踐

  1. 免安裝包部署腳本化:解壓 → 寫 my.ini → mysqld --install → net start → 初始化密碼。
  2. 服務名帶版本:MySQL57、MySQL80,便於多版本共存。
  3. 生產環境使用系統包管理器或 Docker,避免手動註冊服務的環境差異。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved