Python連接mysql數據庫出錯解決方案


最近在學習python使用connector連接MySQL時遇到錯誤:

sqlalchemy.exc.ProgrammingError: (mysql.connector.errors.ProgrammingError) 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) (Background on this error at: http://sqlalche.me/e/f405)

后找到CSDN博客,按照指導方法重置了密碼:https://blog.csdn.net/tao01230/article/details/46410525

 

問題重現(以下討論范圍僅限Windows環境):

C:\AppServ\MySQL> mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 

編輯mysql配置文件my.ini(在MySQLServer的安裝目錄),在[mysqld]這個條目下加入   skip-grant-tables

保存退出后重啟mysql

 

1.點擊“開始”->“運行”(快捷鍵Win+R)。

  2.啟動:輸入 net stop mysql

  3.停止:輸入 net start mysql

 

這時候在cmd里面輸入mysql -u root -p就可以不用密碼登錄了,出現password:的時候直接回車可以進入,不會出現ERROR 1045 (28000),但很多操作都會受限制,因為我們不能grant(沒有權限)。按下面的流程走(紅色部分為輸入部分,綠色的是執行后顯示的代碼不用輸入):

1.進入mysql數據庫:

mysql> use mysql; Database changed

2.給root用戶設置新密碼,藍色部分自己輸入mysql> update user set password=password("新密碼") where user="root"; Query OK, 1 rows affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0

3.刷新數據庫 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

4.退出mysql: mysql> quit Bye

改好之后,再修改一下my.ini這個文件,把我們剛才加入的"skip-grant-tables"這行刪除,保存退出再重啟mysql就可以了。

總結:猜測根本原因就是簡單的密碼輸入錯誤,通過以上方法我們可以不驗證密碼來連接上mysql,然后設置新密碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM