當你登陸MySQL數據庫出現:Error 1045錯誤時(以下圖),就代表你輸入的用戶名或密碼錯誤被拒絕訪問了,最簡單的解決方法就是將MySQL數據庫卸載而後重裝,但這樣的缺點就是就之前的數據庫中的信息將丟失,若是你不想重裝,那麼就須要找回密碼或者重置密碼。解決的方法應該有多種,這裏我推薦你們使用一種原理經過,操做簡單的方法,適用於windows以及linux平臺。 mysql
MySQL 1045錯誤如圖:linux
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
一、 中止服務:中止MySQL服務;sql
二、 跳過驗證:修改MySQL安裝目錄下的my.ini配置文件,使登陸時跳過權限檢查;數據庫
三、 修改密碼:啓動MySQL服務,登陸MySQL,此時提示輸入密碼,輸入任意密碼回車便可進入MySQL。而後經過SQL語句修改root用戶的密碼;windows
四、 重啓服務:將my.ini文件中加入的跳過權限語句刪除或加#號註釋。重啓服務,使用修改後的密碼登陸便可。函數
一、 中止服務:工具
方法1:使用dos命令net stop mysql便可;使用這種方式MySQL服務必須爲安裝的服務,不然spa
會出現服務名無效,這時可使用第二種方法。code
方法2:進入【控制面板】-->【管理工具】 -->【服務】,找到MySQL服務,點擊左邊的中止。進程
二、 跳過驗證:
進入MySQL的安裝路徑(以默認安裝路徑爲例)C:\Program Files\MySQL\MySQL Server 5.1\,找到my.ini配置文件(些文件記錄MySQL的常規參數,每次啓動服務都會先加載此文件),在my.ini配置文件的最後一行加入skip_grant_tables,此語句能夠忽略登陸檢查。
三、 修改密碼:
啓動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爲修改後的新密碼。
四、 重啓服務:
將my.ini文件中加入的跳過權限語句刪除或加#號註釋。重啓服務,使用修改後的密碼登陸便可。
一、 中止服務:
執行:/etc/init.d/mysqlstop
(你的機器不必定是/etc/init.d/mysql也多是/etc/init.d/mysqld,能夠經過find命令查找)。
二、 跳過驗證:
執行:/usr/local/mysql/bin/mysqld_safe--skip-grant-tables >/dev/null 2>&1 &
(若是mysqld_safe的位置若是和不同須要修改,若是不清楚能夠用find命令查找)。
三、 修改密碼:
執行:
/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)
四、 重啓服務:
執行:
killall mysqld (殺死mysql進程)
/etc/init.d/mysql start (啓動mysql服務)