問題現象:
最近使用 flask 的 sqlalchemy 框架,在鏈接數據庫(mysql)時出現報錯
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)
直接在終端輸入 mysql 也會出現報錯
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
但是使用 mysql -uroot -p 可以正常進入數據庫
解決方法:
我的系統為 ubuntu
修改文件
/etc/mysql/mysql.conf.d/mysqld.cnf
找到 [mysqld]
添加配置:
skip-grant-tables
保存后重啟服務
/etc/init.d/mysql restart
此時報錯都被解決掉了 直接輸入 mysql 即可進入數據庫
如果是自己測試或者練手小項目就可以繼續了,但是此方式存在安全隱患,會跳過權限驗證,如果對安全有要求的需要進入數據庫修改密碼后將此配置去掉后重啟
use mysql; update user set password=password("你的新密碼") where user="root";