Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django: remotely access a PythonAnywhere MySQL database

I have a Django app (Python 3.4, Django 1.7) on PythonAnywhere, along with a MySQL database. The database is working fine on the deployed app.

However, I cannot get to connect it to the app on my local machine.

The following error is thrown when I run python manage.py runserver:

django.db.utils.InterfaceError: (2003, "2003: Can't connect to MySQL server on 'mysql.server:3306' (8 nodename nor servname provided, or not known)", None)

These are the attributes I use:

DATABASES = {
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': '<username>$<database_name>',
        'USER': '<username>',
        'PASSWORD': '<databse_password>',
        'HOST': 'pythonanywhere.com'
    }
}

I have also tried mysql.server and mysql.server.pythonanywhere.com as HOST without any more luck.

like image 429
Arnaud Renaud Avatar asked Apr 29 '26 08:04

Arnaud Renaud


1 Answers

I think It's not possible to connect directly to your mysqlserver instance from remote, for security reason, the port 3306 is blocked. They suggest to connect through SSH Tunnel, follow this link.
I don't know If you can do an ssh tunnelling within Django, You should probably write a custom configuration. It's simpler to install an SSH Tunnel software on your PC and then connect your Django App to localhost on a port You have to choose.
Bye

like image 117
Filadelfo Avatar answered Apr 30 '26 22:04

Filadelfo



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!