ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: YES)
典型原因:root 密碼遺失、權限表損壞、或匿名用戶干擾。
my.ini(通常在 MySQL 安裝目錄或 C:\ProgramData\MySQL\MySQL Server x.x\)。[mysqld] 區段下新增:skip-grant-tables服務管理器(services.msc)重啟 MySQL,或 CMD 執行:
net stop mysql net start mysql
mysql -u root -p
-- 密碼提示直接 Enter
USE mysql;
-- MySQL 5.7+ 使用 authentication_string 欄位
UPDATE user SET authentication_string=PASSWORD('123456') WHERE User='root';
-- 5.6 或較舊版本
UPDATE user SET Password=PASSWORD('123456') WHERE User='root';
FLUSH PRIVILEGES;
QUIT;
my.ini,刪除或註釋 skip-grant-tables。mysql -u root -p123456。DELETE FROM mysql.user WHERE User=''; -- 限制 root 僅本地登入 UPDATE mysql.user SET Host='localhost' WHERE User='root'; FLUSH PRIVILEGES;
「跳過授權表 → 重置密碼 → 恢復授權」是解決 1045 錯誤的標準流程。操作完成後務必移除 skip-grant-tables,否則資料庫處於無保護狀態。