Forums

Database connection error

Hello, I have been able to deploy my app successfully on pythonanywhere but it seems my database connection is still not working after creating a new mysql database. Kindly help, below is the error log:

pymysql.err.OperationalError: (1044, "Access denied for user 'paymentofthings'@'%' to database 'pot'")
**NO MATCH**
The above exception was the direct cause of the following exception:
**NO MATCH**
Traceback (most recent call last):
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask/app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask/app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/home/paymentofthings/paymentofthings/app/routes.py", line 24, in createbrand
    add=addbrand.addNewBrand()
  File "/home/paymentofthings/paymentofthings/app/brand/addbrand.py", line 25, in addNewBrand
    db.session.commit()
  File "<string>", line 2, in commit
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1451, in commit
    self._transaction.commit(_to_root=self.future)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 829, in commit
    self._prepare_impl()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 808, in _prepare_impl
    self.session.flush()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3386, in flush
    self._flush(objects)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3526, in _flush
    transaction.rollback(_capture_exception=True)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
    compat.raise_(
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
    raise exception
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3486, in _flush
    flush_context.execute()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 456, in execute
    rec.execute(self)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 630, in execute
    util.preloaded.orm_persistence.save_obj(
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 212, in save_obj
    for (
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 373, in _organize_states_for_save
    for state, dict_, mapper, connection in _connections_for_states(
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1737, in _connections_for_states
    connection = uowtransaction.transaction.connection(base_mapper)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 626, in connection
    return self._connection_for_bind(bind, execution_options)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 735, in _connection_for_bind
    conn = self._parent._connection_for_bind(bind, execution_options)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 747, in _connection_for_bind
    conn = bind.connect()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 3315, in connect
    return self._connection_cls(self, close_with_result=close_with_result)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 96, in __init__
    else engine.raw_connection()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 3394, in raw_connection
    return self._wrap_pool_connect(self.pool.connect, _connection)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 3364, in _wrap_pool_connect
    Connection._handle_dbapi_exception_noconnection(
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2198, in _handle_dbapi_exception_noconnection
    util.raise_(
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
    raise exception
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 3361, in _wrap_pool_connect
    return fn()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 320, in connect
    return _ConnectionFairy._checkout(self)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 884, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 486, in checkout
    rec = pool._do_get()
    raise exception
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
    return self._create_connection()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 266, in _create_connection
    return _ConnectionRecord(self)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 381, in __init__
    self.__connect()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 678, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
    compat.raise_(
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
    raise exception
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 673, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/engine/create.py", line 578, in connect
    return dialect.connect(*cargs, **cparams)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 598, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/pymysql/connections.py", line 353, in __init__
    self.connect()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/pymysql/connections.py", line 633, in connect
    self._request_authentication()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/pymysql/connections.py", line 907, in _request_authentication
    auth_packet = self._read_packet()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/pymysql/connections.py", line 725, in _read_packet
    packet.raise_for_error()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1044, "Access denied for user 'paymentofthings'@'%' to database 'pot'")
(Background on this error at: https://sqlalche.me/e/14/e3q8)
2022-09-15 08:13:38,661: Exception on /v1.0/brand/ [POST]
Traceback (most recent call last):
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/util/_collections.py", line 1008, in __call__
    return self.registry[key]
KeyError: <greenlet.greenlet object at 0x7f1d3ab05300 (otid=0x7f1d3ac95280) current active started main>
**NO MATCH**
During handling of the above exception, another exception occurred:
**NO MATCH**
Traceback (most recent call last):
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask/app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask/app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/home/paymentofthings/paymentofthings/app/routes.py", line 24, in createbrand
    add=addbrand.addNewBrand()
  File "/home/paymentofthings/paymentofthings/app/brand/addbrand.py", line 24, in addNewBrand
    db.session.add(brand)
  File "<string>", line 2, in add
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/scoping.py", line 24, in _proxied
    return self.registry()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/util/_collections.py", line 1010, in __call__
    return self.registry.setdefault(key, self.createfunc())
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 4228, in __call__
    return self.class_(**local_kw)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask_sqlalchemy/__init__.py", line 176, in __init__
    bind = options.pop('bind', None) or db.engine
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask_sqlalchemy/__init__.py", line 998, in engine
    return self.get_engine()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask_sqlalchemy/__init__.py", line 1017, in get_engine
    return connector.get_engine()
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask_sqlalchemy/__init__.py", line 594, in get_engine
    self._engine = rv = self._sa.create_engine(sa_url, options)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/flask_sqlalchemy/__init__.py", line 1027, in create_engine
    return sqlalchemy.create_engine(sa_url, **engine_opts)
  File "<string>", line 2, in create_engine
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/util/deprecations.py", line 309, in warned
    return fn(*args, **kwargs)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/engine/create.py", line 548, in create_engine
    dbapi = dialect_cls.dbapi(**dbapi_args)
  File "/home/paymentofthings/.virtualenvs/venv/lib/python3.9/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 163, in dbapi
    return __import__("MySQLdb")
ModuleNotFoundError: No module named 'MySQLdb'

I think that's the issue: ModuleNotFoundError: No module named 'MySQLdb' -- make sure you installed the package for the same Python version / venv your web app is using.