sql >> Databasteknik >  >> RDS >> Mysql

Ansluter till MySQL på en fjärrserver från python

När du kör mysql kommandot gör du detta i ett SSH-skal. Det vill säga att du ansluter till servern som körs på fjärrdatorn via en localhost förbindelse. Den fjärrservern verkar inte vara inställd för att tillåta fjärranslutningar till den, bara anslutningar från själva maskinen.

Du måste få ditt python-skript att ansluta till MySQL-servern på samma sätt som du gör, via SSH. Du kan öppna en SSH-tunnel till port 3306 på fjärrservern.

Modulen jag gillar att använda för detta ändamål är: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. Kombinera två bord med sql JOIN?

  2. Håll ordning från 'IN'-klausulen

  3. Hur man fixar java.sql.SQLException:Kolumnen 'id' hittades inte. fel i Spring Boot

  4. Hur ställer man in värde till variabel med 'execute' i t-sql?