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

WBOY
풀어 주다: 2023-05-27 16:07:13
앞으로
1331명이 탐색했습니다.

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿