sql >> Database teknologi >  >> RDS >> Mysql

Forbindelse til MySQL på en ekstern server fra python

Når du kører mysql kommando, gør du dette i en SSH-skal. Det vil sige, at du opretter forbindelse til serveren, der kører på den eksterne maskine via en localhost forbindelse. Den eksterne server ser ikke ud til at være konfigureret til at tillade fjernforbindelser til den, kun forbindelser fra selve maskinen.

Du skal have dit python-script til at forbinde til MySQL-serveren på samme måde som du er, via SSH. Du kan åbne en SSH-tunnel til port 3306 på fjernserveren.

Modulet, jeg kan lide at bruge til dette formål, er:https://pypi.python.org/pypi/ sshtunnel

from sshtunnel import SSHTunnelForwarder
import pymysql

server = SSHTunnelForwarder(
    'XXX.XXX.XXX.XXX',
    ssh_username='root',
    ssh_password='my_server_password',
    remote_bind_address=('127.0.0.1', 3306)
)
server.start()

cnx = pymysql.connect(
    host='127.0.0.1',
    port=server.local_bind_port,
    user='root',
    password='my_database_password',
    db='my_database'
)

# Make sure to call server.stop() when you want to disconnect
# after calling cnx.close()


  1. Amazon RDS til PostgreSQL-alternativer - ClusterControl til PostgreSQL

  2. Sådan grupperer du databaseposter i 15-minutters tidsintervaller

  3. Hvordan indsætter man billeder fra databasen?

  4. Sådan opretter du en totalrække i Access