【问题标题】:sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: NO)")sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: NO)")
【发布时间】:2021-09-08 07:06:58
【问题描述】:

所以我正在尝试建立一个简单的博客网站,我在其中使用 Flask 和 flask_sqlalchemy。 在这里,我尝试添加信息(姓名、电子邮件 ID 等)UI part,然后单击按钮,它将保存到 localhost/phpMyadmin。

这里是 Main.py 文件

from flask import Flask , render_template ,redirect, url_for, request
from flask_sqlalchemy import SQLAlchemy


app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:@localhost/PersonalBlog'

# initialize
db = SQLAlchemy(app)

# To Db
class PostTable(db.Model):
    sno = db.Column(db.Integer, primary_key=True, unique=True, nullable=False)
    date = db.Column(db.DATE, primary_key=False)
    name = db.Column(db.String(120), unique=False, nullable=False)
    emailid = db.Column(db.String(50), unique=False, nullable=False)
    phone = db.Column(db.String(15), unique=False, nullable=False)
    message = db.Column(db.String(120), unique=False, nullable=False)

@app.route("/")
def home():
    return render_template('index.html')

@app.route("/homeclick")
def homeclick():
    return render_template('index.html')

@app.route("/about")
def about():
    return render_template('about.html')

@app.route("/post")
def post():
    return render_template('post.html')

@app.route("/contact" , methods=['POST', 'GET'])
def contact():
    if request.method == 'POST' :
        # add entry to the database

        name = request.form.get('name')
        emailid = request.form.get('email')
        phone = request.form.get('phone_number')
        message = request.form.get('message')

        entry_to_db = PostTable(name=name, emailid=emailid , phone=phone, message=message)
        db.session.add(entry_to_db)
        db.session.commit()
    return render_template('contact.html')

if __name__ == '__main__':
    app.run(debug=True, port=4013 , threaded=True)

在提供详细信息后单击提交按钮时显示以下错误。

sqlalchemy.exc.OperationalError sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: NO)") (此错误的背景:http://sqlalche.me/e/14/e3q8

完整的追溯细节(如果有帮助)

文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 3211 行,在 _wrap_pool_connect 返回 fn() 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 307 行 返回 _ConnectionFairy._checkout(self) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 767 行,在 _checkout 仙女 = _ConnectionRecord.checkout(pool) 结帐时的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 425 行 rec = pool._do_get() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/impl.py”,第 146 行,在 do_get self.dec_overflow() exit 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py”,第 70 行 compat.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 _do_get 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/impl.py”,第 143 行 返回 self._create_connection() _create_connection 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 253 行 返回 _ConnectionRecord(self) init 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 368 行 self.__connect() connect 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 611 行 pool.logger.debug("connect() 出错:%s", e) exit 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py”,第 70 行 compat.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 605 行,在 __connect 连接 = pool._invoke_creator(self) 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/create.py”,第 578 行 return dialect.connect(*cargs, **cparams) 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/default.py”,第 584 行 return self.dbapi.connect(*cargs, **cparams) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/MySQLdb/init.py”,第 130 行,在 Connect 返回连接(*args,**kwargs) init 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/MySQLdb/connections.py”,第 185 行 super().init(*args, **kwargs2) 上述异常是以下异常的直接原因: 调用中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 2088 行 return self.wsgi_app(environ, start_response) wsgi_app 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 2073 行 响应 = self.handle_exception(e) wsgi_app 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 2070 行 响应 = self.full_dispatch_request() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 1515 行,在 full_dispatch_request rv = self.handle_user_exception(e) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 1513 行,在 full_dispatch_request rv = self.dispatch_request() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 1499 行,在 dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/main.py”,第 48 行,联系方式 db.session.commit() 文件“”,第 2 行,在提交中

文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 1428 行,在提交中 self._transaction.commit(_to_root=self.future) 提交中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 829 行 self._prepare_impl() _prepare_impl 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 808 行 self.session.flush() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 3298 行,齐平 self._flush(对象) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 3438 行,在 flush transaction.rollback(capture_exception=True) exit 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py”,第 70 行 compat.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 _flush 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 3398 行 flush_context.execute() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py”,第 456 行,在执行 rec.execute(self) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py”,第 630 行,在执行 util.preloaded.orm_persistence.save_obj( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py”,第 209 行,在 save_obj 中 为了 ( organize_states_for_save 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py”,第 370 行 对于状态、字典、映射器、_connections_for_states 中的连接( _connections_for_states 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py”,第 1709 行 连接 = uowtransaction.transaction.connection(base_mapper) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 626 行,连接 return self._connection_for_bind(bind, execution_options) _connection_for_bind 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 735 行 conn = self._parent._connection_for_bind(bind, execution_options) _connection_for_bind 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 747 行 conn = bind.connect() 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 3165 行 返回 self._connection_cls(self, close_with_result=close_with_result) init 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 96 行 否则 engine.raw_connection() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 3244 行,位于 raw_connection 返回 self._wrap_pool_connect(self.pool.connect, _connection) _wrap_pool_connect 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 3214 行 连接。handle_dbapi_exception_noconnection( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 2068 行,在 handle_dbapi_exception_noconnection util.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 _wrap_pool_connect 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 3211 行 返回 fn() 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 307 行 返回 _ConnectionFairy._checkout(self) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 767 行,在 _checkout 仙女 = _ConnectionRecord.checkout(pool) 结帐时的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 425 行 rec = pool._do_get() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/impl.py”,第 146 行,在 do_get self.dec_overflow() exit 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py”,第 70 行 compat.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 _do_get 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/impl.py”,第 143 行 返回 self._create_connection() _create_connection 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 253 行 返回 _ConnectionRecord(self) init 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 368 行 self.__connect() connect 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 611 行 pool.logger.debug("connect() 出错:%s", e) exit 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py”,第 70 行 compat.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 605 行,在 __connect 连接 = pool._invoke_creator(self) 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/create.py”,第 578 行 return dialect.connect(*cargs, **cparams) 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/default.py”,第 584 行 return self.dbapi.connect(*cargs, **cparams) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/MySQLdb/init.py”,第 130 行,在 Connect 返回连接(*args,**kwargs) init 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/MySQLdb/connections.py”,第 185 行 super().init(*args, **kwargs2) sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: NO)") (此错误的背景:http://sqlalche.me/e/14/e3q8) 调试器在您的 WSGI 应用程序中捕获了一个异常。您现在可以查看导致错误的回溯。 要在交互式回溯和明文回溯之间切换,您可以单击“回溯”标题。从文本回溯中,您还可以创建它的粘贴。对于代码执行,将鼠标悬停在要调试的框架上,然后单击右侧的控制台图标。

您可以在堆栈帧中执行任意 Python 代码,并且有一些额外的帮助程序可用于自省:

dump() 显示框架中的所有变量 dump(obj) 转储所有已知的对象

【问题讨论】:

    标签: javascript python python-3.x flask flask-sqlalchemy


    【解决方案1】:

    您的连接字符串没有使用密码mysql://root:<PASSWORD>@localhost/PersonalBlog

    您应该尝试使用 root 作为用户在不使用密码的情况下登录您的数据库,看看会发生什么。

    您可以尝试添加一个具有对该数据库完全(或没有)访问权限的密码的新用户,因此您只需将您的用户 root<PASSWORD> 更改为新用户。您也可以尝试更改/设置 root 用户的密码。

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      • 2016-09-28
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多