>  기사  >  데이터 베이스  >  SSH 기반 Python을 사용하여 원격으로 MySQL 데이터베이스에 연결하는 방법

SSH 기반 Python을 사용하여 원격으로 MySQL 데이터베이스에 연결하는 방법

WBOY
WBOY앞으로
2023-05-27 16:07:131286검색

Background

원격 서버의 Mysql 데이터베이스에 접속해야 하는데, Mysql 데이터베이스의 보안 기간 동안 로컬 연결만 허용하도록 보안 조치가 설정되어 있습니다. 사용), 다른 원격 연결에서는 직접 접속이 허용되지 않으며, 해당 포트가 수정된 경우 SSH 기반으로 데이터베이스에 접속해야 합니다. 데이터베이스에 연결하는 방법은 SSH를 통한 Navicat의 인터페이스 연결과 유사합니다.

SSH 기반 Python을 사용하여 원격으로 MySQL 데이터베이스에 연결하는 방법

Navicat

SSH 기반 Python을 사용하여 원격으로 MySQL 데이터베이스에 연결하는 방법

데이터베이스에 연결

지원 라이브러리 설치

  • Mysql에 연결하려면 먼저 pymysql을 설치해야 합니다

pip install pymysql
  • 설치 기반 SSH에서 라이브러리 sshtunnel

pip install sshtunnel    #当前最新 0.3.1版

최신 버전 라이브러리에는 버그가 있습니다

Mysql에 연결

Sshtunnel 문서를 볼 수 있습니다.

사용자 정의 쿼리 기능

위 연결을 하나의 함수로 캡슐화할 수 있어 다른 곳에서 사용하기 편리합니다.

with SSHTunnelForwarder(
        ('192.168.1.1', 2222),
        ssh_password='123456',
        ssh_username='root',
        remote_bind_address=('127.0.0.1', 3306)) as server:
    print('SSH连接成功')
    conn = pymysql.connect(host='127.0.0.1',
                           port=server.local_bind_port,
                           user='root',
                           database='data',
                           charset='utf8')
    print('mysql数据库连接成功')
    cursor = conn.cursor()
    ...  #获取数据操作,此处省略
    cursor.close()
    conn.close()

참고:

  • 데이터베이스를 사용할 때 conn.commit() , cursor.close(), conn.close()불필요한 버그를 방지하기 위해 표준화된 방식으로 사용해야 합니다

    conn.commit()cursor.close()conn.close()这些一定要规范使用,防止不必要的bug

  • 传入参数时建议用这种方式cursor.execute(sql,args)

  • 이 방법은 다음과 같은 경우에 사용하는 것이 좋습니다. cursor.execute(sql,args) 매개변수를 전달하면 SQL 삽입 위험을 방지할 수 있습니다
🎜🎜

위 내용은 SSH 기반 Python을 사용하여 원격으로 MySQL 데이터베이스에 연결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제