標籤:
配置時以管理員身份運行MySQL Instance Configuration Wizard
當你登入MySQL資料庫出現:Error 1045錯誤時(如),就表明你輸入的使用者名稱或密碼錯誤被拒絕訪問了,最簡單的解決方案就是將MySQL資料庫卸載然後重裝,但這樣的缺點就是就以前的資料庫中的資訊將丟失,如果你不想重裝,那麼就需要找回密碼或者重設密碼。解決的方法應該有多種,這裡我推薦大家使用一種原理通過,操作簡單的方法,適用於windows以及linux平台。
MySQL 1045錯誤
- ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
解決方案:
1、 停止服務:停止MySQL服務;
2、 跳過驗證:修改MySQL安裝目錄下的my.ini設定檔,使登入時跳過許可權檢查;
3、 修改密碼:啟動MySQL服務,登入MySQL,此時提示輸入密碼,輸入任意密碼斷行符號即可進入MySQL。然後通過SQL語句修改root使用者的密碼;
4、 重啟服務:將my.ini檔案中加入的跳過許可權語句刪除或加#號注釋。重啟服務,使用修改後的密碼登入即可。
Windows系統具體操作:
1、 停止服務:
方法1:使用dos命令net stop mysql即可;使用這種方式MySQL服務必須為安裝的服務,否則
會出現服務名無效,這時可以使用第二種方法。
方法2:進入【控制台】-->【管理工具】 -->【服務】,找到MySQL服務,點擊左邊的停止。
2、 跳過驗證:
進入MySQL的安裝路徑(以預設安裝路徑為例)C:\Program Files\MySQL\MySQL Server 5.1\,找到my.ini設定檔(些檔案記錄MySQL的常規參數,每次啟動服務都會先載入此檔案),在my.ini設定檔的最後一行加入skip_grant_tables,此語句可以忽略登入檢查。
3、 修改密碼:
啟動MySQL服務,進入dos環境,輸入mysql -u root -p登入MySQL(如果安裝時沒有勾選添加
環境變數,需要先使用cd命令進入MySQL安裝目錄),此時提示輸入密碼,輸入任意密碼斷行符號即可進入MySQL,出現mysql>控制符,此時表示已經成功登入MySQL;
mysql> USEmysql (將資料庫切換至mysql庫中)
mysql> UPDATE user SET password=PASSWORD(‘newpswd’)WHERE user=’root’; (記著加上;) (修改密碼)
password函數為MySQL內建函式,其中newpswd為修改後的新密碼。
4、 重啟服務:
將my.ini檔案中加入的跳過許可權語句刪除或加#號注釋。重啟服務,使用修改後的密碼登入即可。
Linux系統具體操作:
1、 停止服務:
執行:/etc/init.d/mysqlstop
(你的機器不一定是/etc/init.d/mysql也可能是/etc/init.d/mysqld,可以通過find命令尋找)。
2、 跳過驗證:
執行:/usr/local/mysql/bin/mysqld_safe--skip-grant-tables >/dev/null 2>&1 &
(如果mysqld_safe的位置如果和不一樣需要修改,如果不清楚可以用find命令尋找)。
3、 修改密碼:
執行:
/usr/local/mysql/bin/mysql -u root mysql (登入mysql)
mysql> UPDATE userSET password=PASSWORD(‘newpswd’)WHERE user=’root’; (修改密碼)
mysql>flush privileges ( 重新整理MySQL許可權相關的表)
mysql>exit (退出MySQL)
4、 重啟服務:
執行:
killall mysqld (殺死mysql進程)
/etc/init.d/mysql start (啟動mysql服務)
MySql 1045錯誤