sql >> データベース >  >> RDS >> Mysql

PythonからリモートサーバーのMySQLに接続する

    mysqlを実行するとき コマンドでは、SSHシェルでこれを実行しています。つまり、localhostを介してリモートマシンで実行されているサーバーに接続しているということです。 繋がり。そのリモートサーバーは、リモート接続を許可するように設定されていないようです。マシン自体からの接続のみを許可します。

    SSHを介して、PythonスクリプトをMySQLサーバーに接続するのと同じ方法で接続する必要があります。リモートサーバーのポート3306へのSSHトンネルを開くことができます。

    この目的で使用したいモジュールは次のとおりです。 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. Javaを使用してmysqlでユーザーを作成する

    2. MySQLJSON配列をコンマ区切りの文字列に変換する方法

    3. 任意のテーブルの現在のAUTO_INCREMENT値を取得します

    4. 一般的なMySQLエラー:「通信パケットの読み取り中にエラーが発生しました」