Erpnext showed pymsql operational error. How to solve

This is my Error

OperationalError

pymysql.err.OperationalError: (2003, “Can’t connect to MySQL server on ‘127.0.0.1’ ([Errno 111] Connection refused)”)

Traceback (most recent call last)

  • File “/home/suba/frappe-bench/env/lib/python3.10/site-packages/pymysql/connections.py”, line 649, in connect

sock = socket.create_connection(

  • File “/usr/lib/python3.10/socket.py”, line 845, in create_connection

raise err

  • File “/usr/lib/python3.10/socket.py”, line 833, in create_connection

sock.connect(sa)

  • During handling of the above exception, another exception occurred:

  • File “/home/suba/frappe-bench/apps/frappe/frappe/app.py”, line 105, in application

init_request(request)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/app.py”, line 178, in init_request

frappe.init(site=site, sites_path=_sites_path, force=True)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/init.py”, line 258, in init

setup_module_map(include_all_apps=not (frappe.request or frappe.job or frappe.flags.in_migrate))

  • File “/home/suba/frappe-bench/apps/frappe/frappe/init.py”, line 1666, in setup_module_map

apps = get_installed_apps(_ensure_on_bench=True)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/utils/caching.py”, line 47, in wrapper

return func(*args, **kwargs)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/init.py”, line 1553, in get_installed_apps

installed = json.loads(db.get_global(“installed_apps”) or “”)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/database.py”, line 1133, in get_global

return self.get_default(key, user)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/database.py”, line 1137, in get_default

d = self.get_defaults(key, parent)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/database.py”, line 1153, in get_defaults

defaults = frappe.defaults.get_defaults_for(parent)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/defaults.py”, line 240, in get_defaults_for

frappe.qb.from_(table)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/query_builder/utils.py”, line 87, in execute_query

result = frappe.db.sql(query, params, *args, **kwargs) # nosemgrep

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/database.py”, line 207, in sql

self.connect()

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/database.py”, line 112, in connect

self._conn: MariadbConnection | PostgresConnection = self.get_connection()

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/mariadb/database.py”, line 108, in get_connection

conn = self._get_connection()

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/mariadb/database.py”, line 114, in _get_connection

return self.create_connection()

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/mariadb/database.py”, line 117, in create_connection

return pymysql.connect(**self.get_connection_settings())

  • File “/home/suba/frappe-bench/env/lib/python3.10/site-packages/pymysql/connections.py”, line 361, in __init__

self.connect()

  • File “/home/suba/frappe-bench/env/lib/python3.10/site-packages/pymysql/connections.py”, line 716, in connect

raise exc

  • During handling of the above exception, another exception occurred:

  • File “/home/suba/frappe-bench/env/lib/python3.10/site-packages/pymysql/connections.py”, line 649, in connect

sock = socket.create_connection(

  • File “/usr/lib/python3.10/socket.py”, line 845, in create_connection

raise err

  • File “/usr/lib/python3.10/socket.py”, line 833, in create_connection

sock.connect(sa)

  • During handling of the above exception, another exception occurred:

  • File “/home/suba/frappe-bench/apps/frappe/frappe/middlewares.py”, line 16, in __call__

return super().call(environ, start_response)

  • File “/home/suba/frappe-bench/env/lib/python3.10/site-packages/werkzeug/middleware/shared_data.py”, line 250, in __call__

return self.app(environ, start_response)

  • File “/home/suba/frappe-bench/env/lib/python3.10/site-packages/werkzeug/middleware/shared_data.py”, line 250, in __call__

return self.app(environ, start_response)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/app.py”, line 85, in application

app(environ, start_response),

  • File “/home/suba/frappe-bench/env/lib/python3.10/site-packages/werkzeug/wrappers/request.py”, line 193, in application

resp = f(*args[:-2] + (request,))

  • File “/home/suba/frappe-bench/apps/frappe/frappe/app.py”, line 138, in application

response = handle_exception(e)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/permissions.py”, line 883, in wrapper

return fn(e, *args, **kwargs)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/app.py”, line 327, in handle_exception

allow_traceback = frappe.get_system_settings(“allow_error_traceback”) if frappe.db else False

  • File “/home/suba/frappe-bench/apps/frappe/frappe/init.py”, line 2355, in get_system_settings

local.system_settings = system_settings = get_cached_doc(“System Settings”)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/init.py”, line 1182, in get_cached_doc

doc = get_doc(*args, **kwargs)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/init.py”, line 1308, in get_doc

return frappe.model.document.get_doc(*args, **kwargs)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/model/document.py”, line 83, in get_doc

controller = get_controller(doctype)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/model/base_document.py”, line 67, in get_controller

return import_controller(doctype)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/model/base_document.py”, line 82, in import_controller

doctype_info = frappe.db.get_value(“DocType”, doctype, (“module”, “custom”, “is_tree”), as_dict=True)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/database.py”, line 514, in get_value

result = self.get_values(

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/database.py”, line 618, in get_values

out = self._get_values_from_table(

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/database.py”, line 891, in _get_values_from_table

return query.run(as_dict=as_dict, debug=debug, update=update, run=run, pluck=pluck)

  • File “/home/suba/frappe-bench/apps/frappe/frappe/query_builder/utils.py”, line 87, in execute_query

result = frappe.db.sql(query, params, *args, **kwargs) # nosemgrep

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/database.py”, line 207, in sql

self.connect()

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/database.py”, line 112, in connect

self._conn: MariadbConnection | PostgresConnection = self.get_connection()

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/mariadb/database.py”, line 108, in get_connection

conn = self._get_connection()

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/mariadb/database.py”, line 114, in _get_connection

return self.create_connection()

  • File “/home/suba/frappe-bench/apps/frappe/frappe/database/mariadb/database.py”, line 117, in create_connection

return pymysql.connect(**self.get_connection_settings())

  • File “/home/suba/frappe-bench/env/lib/python3.10/site-packages/pymysql/connections.py”, line 361, in __init__

self.connect()

  • File “/home/suba/frappe-bench/env/lib/python3.10/site-packages/pymysql/connections.py”, line 716, in connect

raise exc

pymysql.err.OperationalError: (2003, “Can’t connect to MySQL server on ‘127.0.0.1’ ([Errno 111] Connection refused)”)

The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.

To switch between the interactive traceback and the plaintext one, you can click on the “Traceback” headline. From the text traceback you can also create a paste of it.

Brought to you by DON’T PANIC, your friendly Werkzeug powered traceback interpreter.

This error usually means MariaDB is not running or Frappe is trying to connect to wrong port/host.

Check DB service status,
Confirm DB is listening,
Verify your site DB config

ok. Thank for your reply