Python MySQLdb kết nối

Kết nối với cơ sở dữ liệu MySQL bằng Python có thể gây nhầm lẫn. Có một số trình điều khiển kết nối khác nhau và không phải tất cả chúng đều hoạt động tốt với các hệ điều hành khác nhau. Trên hết, kích hoạt SSL có thể là một thách thức

Bài viết này đề cập đến bốn phương pháp bạn có thể sử dụng để kết nối ứng dụng Python của mình với MySQL. Những ví dụ này sẽ sử dụng PlanetScale, một nền tảng cơ sở dữ liệu không có máy chủ cho MySQL, nhưng cơ sở dữ liệu thực tế mà bạn kết nối là tùy ý

Các phương thức kết nối sau đây sẽ được đề cập

  • sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
    0
  • sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
    1
  • sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
    2
  • sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
    3

Nếu bạn cần một cơ sở dữ liệu miễn phí để kiểm tra kết nối của mình, PlanetScale là một lựa chọn tuyệt vời. PlanetScale được xây dựng dựa trên Vitess và cung cấp cho bạn quy trình làm việc phân nhánh quen thuộc để kiểm tra và triển khai các thay đổi lược đồ

Vitess được xây dựng vào năm 2010 để giải quyết các vấn đề về quy mô tại YouTube. Kể từ đó, dự án nguồn mở đã tiếp tục phát triển và hiện đang giúp một số công ty như Slack và Square xử lý nhu cầu mở rộng quy mô dữ liệu khổng lồ của họ

Đăng ký tài khoản để nhận cơ sở dữ liệu 5GB miễn phí

Tạo cơ sở dữ liệu

Khi bạn đang ở trong bảng điều khiển PlanetScale

  1. Nhấp vào "Tạo cơ sở dữ liệu mới" trên bảng điều khiển tổng quan về tổ chức của bạn
  2. Đặt tên cho cơ sở dữ liệu của bạn
  3. Chọn một khu vực từ danh sách thả xuống
  4. Nhấp vào Tạo cơ sở dữ liệu

Cơ sở dữ liệu của bạn sẽ được tạo với nhánh phát triển

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
4. Bạn có thể thực hiện các thay đổi lược đồ tại đây và quảng bá nó vào sản xuất khi bạn đã sẵn sàng

Nhận thông tin đăng nhập kết nối

Để tạo thông tin đăng nhập kết nối

  1. Nhấp vào "Kết nối" trên trang tổng quan về cơ sở dữ liệu của bạn
  2. Chọn "Python" từ danh sách thả xuống "Kết nối với"
  3. Sao chép thông tin đăng nhập vào tệp
    sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
    5 trong thư mục ứng dụng Python của bạn

Để đảm bảo kết nối an toàn, PlanetScale sử dụng chứng chỉ từ Tổ chức phát hành chứng chỉ [CA] là một phần của gốc hệ thống có sẵn trên hầu hết các nền tảng. Bạn phải chỉ định đường dẫn đến chứng chỉ CA mà bạn tin tưởng khi kết nối với cơ sở dữ liệu. Lưu ý rằng đường dẫn này phụ thuộc vào nền tảng của bạn. trên các hệ điều hành và bản phân phối khác nhau

Nếu bạn đã sao chép thông tin đăng nhập từ bảng điều khiển PlanetScale, điều này sẽ được thực hiện cho bạn vì PlanetScale tự động phát hiện hệ điều hành của bạn

Nếu đang sử dụng hệ thống Windows, bạn cần tải xuống chứng chỉ gốc, sau đó trỏ đến vị trí của chúng với các tùy chọn cấu hình chính xác cho trình điều khiển mà bạn đang sử dụng

Gói

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
0 là một trong những gói Python phổ biến nhất dành cho MySQL. Nó chứa mô-đun
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
7, một giao diện với MySQL cung cấp API cơ sở dữ liệu Python

Bắt đầu bằng cách cài đặt

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
0. Bạn có thể làm điều này theo hai cách

  1. Sử dụng trình cài đặt từ trang MySQL chính thức phù hợp với phiên bản HĐH và SQL mà bạn đang chạy
  2. Sử dụng
    sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
    9 để cài đặt nó

Phần cuối

pip install mysqlclient

Trên Linux, bạn có thể cần cài đặt các tiêu đề và thư viện phát triển Python3 và MySQL trước khi cài đặt

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
0

Phần cuối

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

Khi bạn đã cài đặt

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
0, bạn có thể kết nối với cơ sở dữ liệu bằng mã sau

con trăn

import os
import MySQLdb # import the MySQLdb module
from dotenv import load_dotenv
load_dotenv[]

# Create the connection object
connection = MySQLdb.connect[
    host=os.getenv["HOST"],
    user=os.getenv["USERNAME"],
    passwd=os.getenv["PASSWORD"],
    db=os.getenv["DATABASE"],
    ssl_mode="VERIFY_IDENTITY",
    ssl={
        'ca': os.getenv["SSL_CERT"]
    }
]

# Create cursor and use it to execute SQL command
cursor = connection.cursor[]
cursor.execute["select @@version"]
version = cursor.fetchone[]

if version:
    print['Running version: ', version]
else:
    print['Not connected.']

Lưu ý, bạn phải cài đặt

import os
import MySQLdb # import the MySQLdb module
from dotenv import load_dotenv
load_dotenv[]

# Create the connection object
connection = MySQLdb.connect[
    host=os.getenv["HOST"],
    user=os.getenv["USERNAME"],
    passwd=os.getenv["PASSWORD"],
    db=os.getenv["DATABASE"],
    ssl_mode="VERIFY_IDENTITY",
    ssl={
        'ca': os.getenv["SSL_CERT"]
    }
]

# Create cursor and use it to execute SQL command
cursor = connection.cursor[]
cursor.execute["select @@version"]
version = cursor.fetchone[]

if version:
    print['Running version: ', version]
else:
    print['Not connected.']
2 và nhập mô-đun
import os
import MySQLdb # import the MySQLdb module
from dotenv import load_dotenv
load_dotenv[]

# Create the connection object
connection = MySQLdb.connect[
    host=os.getenv["HOST"],
    user=os.getenv["USERNAME"],
    passwd=os.getenv["PASSWORD"],
    db=os.getenv["DATABASE"],
    ssl_mode="VERIFY_IDENTITY",
    ssl={
        'ca': os.getenv["SSL_CERT"]
    }
]

# Create cursor and use it to execute SQL command
cursor = connection.cursor[]
cursor.execute["select @@version"]
version = cursor.fetchone[]

if version:
    print['Running version: ', version]
else:
    print['Not connected.']
3 để truy cập thông tin đăng nhập cơ sở dữ liệu trong tệp
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
5

Lưu ý cho người dùng Windows. Cài đặt

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
0 từ tệp bánh xe không hỗ trợ
import os
import MySQLdb # import the MySQLdb module
from dotenv import load_dotenv
load_dotenv[]

# Create the connection object
connection = MySQLdb.connect[
    host=os.getenv["HOST"],
    user=os.getenv["USERNAME"],
    passwd=os.getenv["PASSWORD"],
    db=os.getenv["DATABASE"],
    ssl_mode="VERIFY_IDENTITY",
    ssl={
        'ca': os.getenv["SSL_CERT"]
    }
]

# Create cursor and use it to execute SQL command
cursor = connection.cursor[]
cursor.execute["select @@version"]
version = cursor.fetchone[]

if version:
    print['Running version: ', version]
else:
    print['Not connected.']
6. Vì bạn muốn đảm bảo kết nối cơ sở dữ liệu được an toàn, chúng tôi khuyên bạn nên sử dụng trình điều khiển khác, chẳng hạn như mysql-connector-python

Ví dụ này sử dụng kết nối để tìm nạp phiên bản SQL của cơ sở dữ liệu rồi đóng kết nối

Các phương thức kết nối còn lại có cú pháp gần giống như ví dụ này. Cú pháp tương tự này bắt nguồn từ đặc tả API cơ sở dữ liệu Python [PEP 249] khuyến khích tính nhất quán giữa các mô-đun Python được sử dụng để truy cập cơ sở dữ liệu

Mô-đun MySQL Connector/Python là trình điều khiển chính thức được Oracle hỗ trợ để kết nối MySQL thông qua Python. Trình kết nối hoàn toàn là Python, trong khi

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
0 được viết bằng C. Nó cũng độc lập, có nghĩa là nó không yêu cầu thư viện máy khách MySQL hoặc bất kỳ mô-đun Python nào bên ngoài thư viện chuẩn

Lưu ý rằng Trình kết nối MySQL/Python không hỗ trợ các phương thức xác thực máy chủ MySQL cũ, điều đó có nghĩa là các phiên bản MySQL trước 4. 1 không hoạt động

Bắt đầu bằng cách cài đặt mô-đun

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
1. Bạn nên cài đặt nó bằng pip

Phần cuối

pip install mysql-connector-python

Sau khi cài đặt, sử dụng đoạn mã sau để kết nối với MySQL

con trăn

import os
from dotenv import load_dotenv
from mysql.connector import Error
import mysql.connector

load_dotenv[]

connection = mysql.connector.connect[
host=os.getenv["HOST"],
database=os.getenv["DATABASE"],
user=os.getenv["USERNAME"],
password=os.getenv["PASSWORD"],
ssl_ca=os.getenv["SSL_CERT"]
]

try:
    if connection.is_connected[]:
        cursor = connection.cursor[]
    cursor.execute["select @@version "]
    version = cursor.fetchone[]
    if version:
        print['Running version: ', version]
    else:
        print['Not connected.']
except Error as e:
    print["Error while connecting to MySQL", e]
finally:
    connection.close[]

Gói PyMySQL là một trình kết nối khác mà bạn có thể sử dụng để kết nối Python với MySQL. Đó là một lựa chọn tốt nếu bạn đang tìm kiếm tốc độ, vì nó nhanh hơn

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
1

Bạn có thể cài đặt nó bằng pip với

Phần cuối

pip install PyMySQL

Sau đó, sử dụng mã kết nối sau

con trăn

from dotenv import load_dotenv
import pymysql
import os
load_dotenv[]
connection = pymysql.connect[
    host=os.getenv["HOST"],
    database=os.getenv["DATABASE"],
    user=os.getenv["USERNAME"],
    password=os.getenv["PASSWORD"],
    ssl_ca=os.getenv["SSL_CERT"]
]
cursor = connection.cursor[]
cursor.execute["select @@version "]
version = cursor.fetchone[]
if version:
    print['Running version: ', version]
else:
    print['Not connected.']
connection.close[]

Thư viện

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
3 được sử dụng để truy cập cơ sở dữ liệu MySQL từ khung asyncio. Ngoài việc không đồng bộ, mã kết nối tương tự như PyMySQL. Lưu ý rằng việc sử dụng
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
3 yêu cầu Python 3. 7+ và PyMySQL

Để sử dụng

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
3, trước tiên hãy cài đặt mô-đun không đồng bộ với

Phần cuối

pip install asyncio

Sau đó, cài đặt

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
3 bằng cách sử dụng

Phần cuối

pip install aiomysql

Sau đó, bạn có thể kết nối với MySQL bằng mã sau

con trăn

import os
import asyncio
import aiomysql
import ssl

from dotenv import load_dotenv
load_dotenv[]

ctx = ssl.SSLContext[ssl.PROTOCOL_TLS_CLIENT]
ctx.load_verify_locations[cafile=os.getenv["SSL_CERT"]]

loop = asyncio.get_event_loop[]

async def connect_db[]:
   connection = await aiomysql.connect[
       host=os.getenv["HOST"],
       port=3306,
       user=os.getenv["USERNAME"],
       password=os.getenv["PASSWORD"],
       db=os.getenv["DATABASE"],
       loop=loop,
       ssl=ctx
   ]
   cursor = await connection.cursor[]
   await cursor.execute["select @@version"]
   version = await cursor.fetchall[]
   print['Running version: ', version]
   await cursor.close[]
   connection.close[]
loop.run_until_complete[connect_db[]]

Dữ liệu liên tục trong cơ sở dữ liệu là một trong những tính năng phổ biến của các ứng dụng phần mềm. Giống như Python, hầu hết các ngôn ngữ lập trình đều hỗ trợ kết nối và tương tác với các cơ sở dữ liệu khác nhau

Hướng dẫn này khám phá việc kết nối Python với MySQL. Chúng tôi đã chia sẻ bốn trình kết nối phổ biến khác nhau mà bạn có thể sử dụng và thử nghiệm chúng trên cơ sở dữ liệu PlanetScale bằng SSL để bảo mật — một bước quan trọng vì nó ngăn chặn các cuộc tấn công trung gian. Chúng tôi đã xem xét cách thức hoạt động của trình kết nối đối với từng phương thức kết nối và cho bạn thấy mã cần thiết để chạy nó. Bây giờ bạn đã hoàn thành phần tổng quan thực hành này, bạn đã sẵn sàng để kết nối cơ sở dữ liệu MySQL với ứng dụng Python

MySQLdb có hoạt động với python3 không?

Mô-đun MySQLdb, giao diện phổ biến với MySQL không tương thích với Python 3.

Trình kết nối MySQL connect[] trong Python là gì?

Trình kết nối MySQL/Python cho phép các chương trình Python truy cập cơ sở dữ liệu MySQL , sử dụng API tuân thủ Đặc tả API cơ sở dữ liệu Python phiên bản 2.

Làm cách nào để cài đặt MySQLdb trong Python?

Làm theo các bước bên dưới để cài đặt Python MySQLdb trong Linux. .
Bước 1. Kiểm tra phiên bản Python. Kiểm tra xem Python đã được cài đặt hay chưa trên hệ thống của bạn. .
Bước 2. Thông tin cập nhật và sự phụ thuộc của chúng. .
Bước 3. Cài đặt mô-đun

Mô-đun MySQLdb trong Python là gì?

MYSQLdb là gì? . Nó triển khai API cơ sở dữ liệu Python v2. 0 và được xây dựng dựa trên MySQL C API. an interface for connecting to a MySQL database server from Python. It implements the Python Database API v2. 0 and is built on top of the MySQL C API.

Chủ Đề