CÔNG CỤ
MODULES
THAM KHẢO
Cách chia List thành các phần bằng nhau trong Python Cách xóa một khóa (key) ra khỏi dictionary trong Python Hướng dẫn chuyển đổi file Google Colab sang Markdown trong Python Bài tập Python: Lập trình cơ sở dữ liệu trong Python Kết nối cơ sở dữ liệu MySQL Python Hướng dẫn kết nối Python PostgreSQL bằng Psycopg2 Hướng dẫn kết nối SQLite sử dụng sqlite3 trong Python Bài tập Python : Pandas trong Python Phạm vi số float của Python Cách lên lịch chạy script Python bằng GitHub Actions Cách tạo hằng số trong Python Các nền tảng lưu trữ tốt nhất cho ứng dụng và script Python 6 Tip viết vòng lặp For hiệu quả hơn trong Python Cách đảo ngược Chuỗi String trong Python Cách gỡ lỗi ứng dụng Python trong Docker Container bằng VS Code 10 tip One Liner bạn cần biết trong Python Cách áp dụng ngưỡng hình ảnh trong Python với NumPy Tìm hiểu về các phép toán Groupby trong Pandas Lập trình Socket trong Python Mô-đun base64 trong Python Cách giới hạn float values trong Python Tìm hiểu Mô-đun statistics Trong Python File Organizing trong Python Đổi tên File trong Python Tìm hiểu về Deque trong Python Mô-đun Calendar trong Python Tìm hiểu về Enum trong Python Sử dụng pprint trong Python Làm việc với cấu trúc Dữ liệu Stack trong Python Thư viện functools trong Python Tip sử dụng hàm round() với tham số âm trong Python Hàm print có thể nhận thêm các tham số bổ sung trong Python Tip tìm chuỗi dài nhất bằng hàm max() trong Python Cách lặp qua nhiều list với hàm zip() trong Python Tìm hiểu về MLOps trong Python Docker và Kubernetes với MLOps trong Python Kết hợp DevOps với MLOps trong Python Xử lý độ chính xác các hàm floor, ceil, round, trunc, format trong Python tối ưu quy trình MLOps Với Python Sự khác biệt giữa byte objects và string trong Python Top 4 thư viện phổ biến nhất của NLP trong Python Cách sử dụng ThreadPoolExecutor trong Python Phân tích dữ liệu Blockchain với Python Hướng dẫn triển khai Smart Contracts với Python Blockchain APIs với Python Làm việc với file ZIP trong Python Sự khác biệt giữa toán tử == và is trong Python Chuyển đổi kiểu dữ liệu trong Python Cách làm việc với file tarball/tar trong Python Sự khác biệt giữa iterator và iterable trong Python Sự khác biệt giữa set() và frozenset() trong Python Làm việc với các biến môi trường trong Python Một tác vụ phổ biến khi làm việc với danh sách trong Python Định dạng chuỗi Strings trong Python Sử dụng Poetry để quản lý dependencies trong Python Sự khác biệt giữa sort() và sorted() trong Python Từ khóa yield trong Python Lớp dữ liệu (Data Classes) trong Python với decorator @dataclass Cách truy cập và thiết lập biến môi trường trong Python Hướng dẫn toàn diện về module datetime trong Python Hướng dẫn xây dựng Command-Line Interface (CLI) bằng Quo trong Python Sử dụng Virtual Environment trong Python Từ khóa super() trong Python Số phức trong Python Ý nghĩa của một hoặc hai dấu gạch dưới đứng đầu trong Python Làm việc với Video trong OpenCV bằng Python Chỉnh sửa file trực tiếp bằng module fileinput trong Python Hướng dẫn cách chuyển đổi kiểu dữ liệu trong Python Làm việc với hình ảnh trong OpenCV sử dụng Python Metaclasses trong Python Cách chọn ngẫu nhiên một phần tử từ danh sách trong Python Hướng dẫn cài đặt và sử dụng OpenCV trong Python Phạm vi toàn cục, cục bộ và không cục bộ trong Python Tìm hiểu về từ khóa self trong các lớp Python Hướng dẫn sử dụng Rich, Typer, và SQLite trên terminal bằng Python Giới thiệu về Graph Machine Learning trong Python Cách kiểm tra một đối tượng có thể lặp (iterable) trong Python Quản lý sinh viên Python & MySQL Cách cắt (slicing) chuỗi trong Python Cách loại bỏ phần tử trùng lặp khỏi danh sách (List) trong Python Phân tích dữ liệu Apple Health bằng Python Cách làm phẳng danh sách lồng nhau trong Python Tìm hiểu về *args và **kwargs trong Python Cách xóa file và thư mục trong Python 31 Phương thức xử lý chuỗi (String) quan trọng trong Python Cách sao chép file trong Python 8 Mẹo Refactor Code Python nhanh gọn (Phần 2) Cách yêu cầu người dùng nhập liệu đến khi nhận được phản hồi hợp lệ trong Python Làm chủ Pattern Matching trong Python 3.10 Tạo app ghi chú trong Python với nhận dạng giọng nói và API Notion Các tính năng mới trong Python 3.10 5 lỗi thường gặp trong Python Sự khác biệt giữa append() và extend() trong list Python Các cách nối hai danh sách trong Python Sự khác biệt giữa str và repr trong Python Sự khác biệt giữa @classmethod, @staticmethod và instance methods trong Python Cách thêm số 0 vào đầu chuỗi trong Python Cách tạo thư mục lồng nhau (nested directory) trong Python Cách hợp nhất hai Dictionaries trong Python Cách thực thi lệnh hệ thống hoặc System Command từ Python Cách kiểm tra một chuỗi có chứa chuỗi con trong Python Cách tìm chỉ mục của một phần tử trong danh sách (List) trong Python Cách truy cập index trong vòng lặp for trong Python Cách kiểm tra file hoặc thư mục có tồn tại trong Python Cách xóa phần tử trong danh sách Python Ý nghĩa của if __name__ == "__main__" trong Python 8 mẹo tái cấu trúc Python giúp mã sạch hơn và Pythonic Hỗ trợ Async trong Django 3.1 Hướng dẫn tạo ứng dụng AI hội thoại với NVIDIA Jarvis trong Python Hướng dẫn xây dựng ứng dụng dự đoán giá cổ phiếu bằng Python Cách cài đặt Jupyter Notebook trong môi trường Conda và thêm Kernel Xây dựng ứng dụng Web Style Transfer với PyTorch và Streamlit Cách sử dụng Python Debugger với hàm breakpoint() Cách sử dụng chế độ interactive trong Python Hướng dẫn viết game Rắn Săn Mồi bằng Python 11 mẹo và thủ thuật để viết Code Python hiệu quả hơn Hướng dẫn làm ứng dụng TODO với Flask dành cho người mới bắt đầu trong Python Hướng dẫn tạo Chatbot đơn giản bằng PyTorch Xây dựng Web Machine Learning đẹp mắt với Streamlit và Scikit-learn trong Python Xây dựng web Python tự động hóa Twitter | Flask, Heroku, Twitter API & Google Sheets API Hướng dẫn sử dụng Google Sheets API với Python Cách nạp dữ liệu Machine Learning từ File trong Python Toán tử Walrus Operator- Tính năng mới trong Python 3.8 Cách thêm Progress Bar trong Python với chỉ một dòng Code
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.

Kết nối cơ sở dữ liệu MySQL Python

Trong bài viết này, mình sẽ học cách kết nối và làm việc với cơ sở dữ liệu MySQL bằng Python sử dụng mô-đun "MySQL Connector Python". Mình sẽ tìm hiểu cách phát triển và tích hợp ứng dụng Python với máy chủ cơ sở dữ liệu MySQL.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong Python, có nhiều mô-đun khác nhau để giao tiếp với cơ sở dữ liệu MySQL, như PyMySQL, MySQLDB, MySqlClient, OurSQL, vv. Tất cả các mô-đun này tuân thủ Đặc tả API cơ sở dữ liệu Python v2.0 (PEP 249), có nghĩa là cú pháp, phương thức và cách truy cập cơ sở dữ liệu giống nhau trong tất cả các mô-đun.

PEP 249 được thiết kế để khuyến khích và duy trì sự tương đồng giữa các mô-đun Python được sử dụng để truy cập cơ sở dữ liệu. Bằng cách này, tất cả các mô-đun tuân thủ các quy tắc được xác định trong Đặc tả API cơ sở dữ liệu Python v2.0 (PEP 249).

Trong hướng dẫn này, mình sẽ tập trung vào mô-đun "MySQL Connector Python". Mô-đun này được viết bằng Python thuần túy và có khả năng tự thực hiện các truy vấn cơ sở dữ liệu thông qua Python. Nó là trình điều khiển chính thức được Oracle hỗ trợ để làm việc với MySQL và Python. MySQL Connector Python tương thích với Python 3 và được duy trì tích cực.

Bài viết này được đăng tại [free tuts .net]

Ưu điểm và lợi ích của MySQL Connector Python:

  • MySQL Connector Python được viết bằng Python thuần túy.
  • Được hỗ trợ chính thức bởi Oracle cho việc làm việc với MySQL và Python.
  • Tương thích với Python 3 và được duy trì tích cực.

Cách kết nối cơ sở dữ liệu MySQL bằng Python

Trước khi kết nối đến cơ sở dữ liệu MySQL từ Python, bạn cần biết các thông tin sau:

  • Tên tài khoản (Username): Tên người dùng mà bạn sử dụng để làm việc với MySQL Server. Tên người dùng mặc định cho cơ sở dữ liệu MySQL là "root".

  • Mật khẩu (Password): Mật khẩu được cung cấp tại thời điểm cài đặt máy chủ MySQL. Nếu bạn đang sử dụng tài khoản "root", bạn có thể không cần mật khẩu.

  • Tên máy chủ (Hostname): Tên máy chủ hoặc địa chỉ IP mà MySQL Server đang chạy. Nếu bạn đang chạy trên máy tính cục bộ, bạn có thể sử dụng "localhost" hoặc địa chỉ IP "127.0.0.1".

  • Tên cơ sở dữ liệu (Database Name): Tên của cơ sở dữ liệu mà bạn muốn kết nối và thực hiện các thao tác.

Dưới đây là các bước cơ bản để kết nối cơ sở dữ liệu MySQL bằng Python sử dụng mô-đun "MySQL Connector Python":

Bước 1: Cài đặt mô-đun kết nối MySQL

Trước tiên, bạn cần cài đặt mô-đun "MySQL Connector Python". Sử dụng lệnh pip để cài đặt:

pip install mysql-connector-python

Bước 2: Nhập mô-đun kết nối MySQL

Nhập mô-đun "mysql.connector" bằng cách sử dụng câu lệnh import mysql.connector. Điều này cho phép bạn sử dụng các phương thức và lớp được cung cấp bởi mô-đun này để giao tiếp với cơ sở dữ liệu MySQL.

Bước 3: Sử dụng phương thức connect()

Sử dụng phương thức connect() của lớp mysql.connector với các đối số cần thiết để kết nối đến cơ sở dữ liệu MySQL. Phương thức này sẽ trả về một đối tượng MySQLConnection nếu kết nối được thiết lập thành công.

Bước 4: Sử dụng phương thức con trỏ (cursor())

Sử dụng phương thức cursor() của đối tượng MySQLConnection để tạo một đối tượng con trỏ. Đối tượng con trỏ này sẽ được sử dụng để thực hiện các truy vấn SQL khác nhau.

Bước 5: Sử dụng phương thức execute() và fetchall()

Các phương thức execute() chạy các truy vấn SQL và trả về kết quả. Sau đó, bạn có thể sử dụng phương thức fetchall() để trích xuất dữ liệu từ kết quả truy vấn.

Bước 6: Đóng các đối tượng con trỏ và kết nối

Sử dụng cursor.close() để đóng đối tượng con trỏ và connection.close() để đóng kết nối sau khi hoàn thành công việc.

anh22 jpg

Dưới đây là một ví dụ minh họa:

import mysql.connector

try:
    connection = mysql.connector.connect(
        host='localhost',
        user='your_username',
        password='your_password',
        database='your_database'
    )

    if connection.is_connected():
        db_info = connection.get_server_info()
        print("Connected to MySQL Server version ", db_info)

        cursor = connection.cursor()
        cursor.execute("SELECT * FROM your_table")
        records = cursor.fetchall()

        for record in records:
            print(record)

except mysql.connector.Error as e:
    print("Error while connecting to MySQL:", e)

finally:
    if connection.is_connected():
        cursor.close()
        connection.close()
        print("MySQL connection is closed")

Đây là hướng dẫn cơ bản về cách kết nối cơ sở dữ liệu MySQL bằng Python bằng mô-đun "MySQL Connector Python". Hãy thay đổi các thông tin kết nối của bạn để phù hợp với cơ sở dữ liệu của bạn.

Kết quả

Connected to MySQL Server version 8.0.27
(1, 'John', 'Doe')
(2, 'Jane', 'Smith')
(3, 'Alice', 'Johnson')
MySQL connection is closed

Kết quả này cho thấy bạn đã kết nối thành công đến máy chủ MySQL và truy vấn dữ liệu từ bảng your_table, sau đó in ra các bản ghi trong kết quả.

Những điều cần nhớ:

  • Cài đặt mô-đun kết nối MySQL: Trước tiên, bạn cần cài đặt mô-đun "mysql-connector-python" bằng lệnh pip install mysql-connector-python.

  • Thông tin kết nối: Bạn cần biết các thông tin kết nối như tên tài khoản, mật khẩu, tên máy chủ, và tên cơ sở dữ liệu.

  • Kết nối và đóng kết nối: Sử dụng phương thức connect() để kết nối đến cơ sở dữ liệu MySQL và close() để đóng kết nối sau khi hoàn thành công việc. Chắc chắn rằng bạn đã đóng kết nối để tránh tiêu tốn tài nguyên không cần thiết.

  • Xử lý ngoại lệ: Luôn kiểm tra và xử lý các ngoại lệ có thể xảy ra khi kết nối cơ sở dữ liệu, ví dụ như sai tên người dùng hoặc mật khẩu, lỗi truy vấn, vv.

  • Sử dụng cursor: Sử dụng đối tượng con trỏ (cursor) để thực hiện các truy vấn SQL và trích xuất dữ liệu từ kết quả.

  • Đóng đối tượng con trỏ và kết nối: Đảm bảo bạn đóng đối tượng con trỏ và kết nối sau khi hoàn thành công việc để giải phóng tài nguyên và tránh lỗi.

  • Thay đổi thông tin kết nối: Thay đổi các thông tin kết nối như tên tài khoản, mật khẩu, hoặc tên cơ sở dữ liệu để phù hợp với môi trường cụ thể của bạn.

Nhớ tuân thủ các nguyên tắc cơ bản này để kết nối cơ sở dữ liệu MySQL bằng Python một cách hiệu quả và an toàn.

Tạo bảng MySQL từ Python

Trong phần này, mình sẽ học cách tạo bảng trong cơ sở dữ liệu MySQL từ Python. Hãy tạo bảng 'Laptop' trong cơ sở dữ liệu 'Electronics'.

Dưới đây là ví dụ về cách tạo bảng trong MySQL từ Python:

import mysql.connector

try:
    connection = mysql.connector.connect(
        host='localhost',
        database='Electronics',
        user='pynative',
        password='pynative@#29'
    )

    mySql_Create_Table_Query = """CREATE TABLE Laptop ( 
                             Id int(11) NOT NULL,
                             Name varchar(250) NOT NULL,
                             Price float NOT NULL,
                             Purchase_date Date NOT NULL,
                             PRIMARY KEY (Id)) """

    cursor = connection.cursor()
    cursor.execute(mySql_Create_Table_Query)
    print("Laptop Table created successfully")

except mysql.connector.Error as error:
    print("Failed to create table in MySQL: {}".format(error))
finally:
    if connection.is_connected():
        cursor.close()
        connection.close()
        print("MySQL connection is closed")

Khi bạn chạy ví dụ để tạo bảng MySQL từ Python, kết quả sẽ giống như sau:

Laptop Table created successfully
MySQL connection is closed

Kết quả này cho thấy bạn đã tạo thành công bảng "Laptop" trong cơ sở dữ liệu MySQL của bạn. Bạn cũng có thông báo rằng kết nối MySQL đã được đóng sau khi công việc hoàn tất.

Nếu bạn kiểm tra trong cơ sở dữ liệu của mình, bạn sẽ thấy bảng "Laptop" với các cột và ràng buộc tương ứng đã được tạo.

Hoạt động CRUD của Python MySQL

Hoạt động CRUD (Create, Read, Update, Delete) là các hoạt động cơ bản khi làm việc với cơ sở dữ liệu. Dưới đây, tôi sẽ cung cấp ví dụ về cách thực hiện các hoạt động CRUD trong Python với cơ sở dữ liệu MySQL bằng mô-đun MySQL Connector Python.

Create (Tạo) - Chèn dữ liệu mới vào cơ sở dữ liệu:

import mysql.connector

try:
    connection = mysql.connector.connect(
        host='localhost',
        database='Electronics',
        user='pynative',
        password='pynative@#29'
    )

    cursor = connection.cursor()

    # Thêm dữ liệu mới vào bảng
    insert_query = "INSERT INTO Laptop (Id, Name, Price, Purchase_date) VALUES (%s, %s, %s, %s)"
    record_to_insert = (1, 'Laptop A', 1000.0, '2023-09-08')
    cursor.execute(insert_query, record_to_insert)

    connection.commit()  # Lưu thay đổi vào cơ sở dữ liệu

except mysql.connector.Error as error:
    print("Lỗi khi thêm dữ liệu:", error)
finally:
    if connection.is_connected():
        cursor.close()
        connection.close()

Read (Đọc) - Truy vấn và đọc dữ liệu từ cơ sở dữ liệu:

import mysql.connector

try:
    connection = mysql.connector.connect(
        host='localhost',
        database='Electronics',
        user='pynative',
        password='pynative@#29'
    )

    cursor = connection.cursor()

    # Truy vấn và đọc dữ liệu từ bảng
    select_query = "SELECT * FROM Laptop"
    cursor.execute(select_query)

    # Lấy tất cả các hàng từ kết quả
    records = cursor.fetchall()

    for record in records:
        print("ID:", record[0])
        print("Name:", record[1])
        print("Price:", record[2])
        print("Purchase Date:", record[3])

except mysql.connector.Error as error:
    print("Lỗi khi đọc dữ liệu:", error)
finally:
    if connection.is_connected():
        cursor.close()
        connection.close()

Update (Cập nhật) - Cập nhật dữ liệu trong cơ sở dữ liệu:

import mysql.connector

try:
    connection = mysql.connector.connect(
        host='localhost',
        database='Electronics',
        user='pynative',
        password='pynative@#29'
    )

    cursor = connection.cursor()

    # Cập nhật dữ liệu trong bảng
    update_query = "UPDATE Laptop SET Price = %s WHERE Name = %s"
    data_to_update = (1200.0, 'Laptop A')
    cursor.execute(update_query, data_to_update)

    connection.commit()

except mysql.connector.Error as error:
    print("Lỗi khi cập nhật dữ liệu:", error)
finally:
    if connection.is_connected():
        cursor.close()
        connection.close()

Delete (Xóa) - Xóa dữ liệu khỏi cơ sở dữ liệu:

import mysql.connector

try:
    connection = mysql.connector.connect(
        host='localhost',
        database='Electronics',
        user='pynative',
        password='pynative@#29'
    )

    cursor = connection.cursor()

    # Xóa dữ liệu từ bảng
    delete_query = "DELETE FROM Laptop WHERE Name = %s"
    data_to_delete = ('Laptop A',)
    cursor.execute(delete_query, data_to_delete)

    connection.commit()

except mysql.connector.Error as error:
    print("Lỗi khi xóa dữ liệu:", error)
finally:
    if connection.is_connected():
        cursor.close()
        connection.close()

Điều này là một hướng dẫn cơ bản về cách thực hiện hoạt động CRUD trong Python với cơ sở dữ liệu MySQL. Điều quan trọng là điều chỉnh câu lệnh SQL và thông tin kết nối để phù hợp với cơ sở dữ liệu của bạn.

Danh sách đối số kết nối Python MySQL

Dưới đây là một danh sách các đối số kết nối mà bạn có thể sử dụng khi kết nối đến cơ sở dữ liệu MySQL từ Python bằng MySQL Connector Python:

  • host: Tên máy chủ hoặc địa chỉ IP của máy chủ MySQL.

  • user: Tên người dùng MySQL mà bạn sử dụng để đăng nhập vào máy chủ.

  • password: Mật khẩu được sử dụng cho tài khoản người dùng MySQL.

  • database: Tên cơ sở dữ liệu bạn muốn kết nối đến.

  • port: Cổng TCP/IP của máy chủ MySQL. Mặc định là 3306.

  • use_unicode: Xác định xem bạn muốn sử dụng Unicode hay không. Giá trị mặc định là True.

  • charset: Bộ ký tự MySQL để sử dụng cho kết nối. Giá trị mặc định là "utf8".

  • autocommit: Đặt thành True nếu bạn muốn tự động cam kết giao dịch. Giá trị mặc định là False.

  • get_warnings: Để tìm nạp cảnh báo. Mặc định là False.

  • raise_on_warnings: Đặt True nếu bạn muốn đưa ra ngoại lệ cho các cảnh báo. Mặc định là False.

  • connection_timeout: Thời gian chờ cho các kết nối ổ cắm TCP và Unix.

  • buffered: Nếu True, đối tượng con trỏ sẽ tìm nạp kết quả ngay sau khi thực hiện truy vấn. Giá trị mặc định là False.

  • raw: Nếu True, kết quả MySQL được trả về nguyên trạng thay vì chuyển đổi thành kiểu Python. Giá trị mặc định là False.

  • force_ipv6: Khi cài đặt thành True, sử dụng IPv6 khi một địa chỉ phân giải thành cả IPv4 và IPv6. Giá trị mặc định là False.

  • pool_name: Tên nhóm kết nối bạn đang tạo hoặc sử dụng.

  • pool_size: Kích thước nhóm kết nối mà bạn muốn tạo. Giá trị mặc định là 5.

  • pool_reset_session: Đặt lại các biến phiên khi kết nối được trả về nhóm. Mặc định là True.

  • use_pure: Xác định xem nên sử dụng Tiện ích mở rộng Python hay C thuần túy. Giá trị mặc định là False.

  • unix_socket: Vị trí của tệp ổ cắm Unix, cho phép giao tiếp giữa hai quá trình.

  • auth_plugin: Plugin xác thực để sử dụng.

  • collation: Đối chiếu MySQL để sử dụng.

  • sql_mode: Đặt biến phiên sql_mode tại thời điểm kết nối.

Bạn có thể chọn các đối số phù hợp với nhu cầu của bạn khi thiết lập kết nối MySQL từ Python.

Sử dụng Từ điển để giữ các đối số Kết nối MySQL

Bạn có thể sử dụng một từ điển để tổ chức và truyền các đối số kết nối MySQL khi bạn tạo kết nối từ Python. Dưới đây là một ví dụ về cách bạn có thể làm điều này:

import mysql.connector

# Tạo một từ điển chứa các đối số kết nối MySQL
config = {
    'host': 'localhost',
    'user': 'your_username',
    'password': 'your_password',
    'database': 'your_database',
    'port': 3306,  # Có thể cần điều chỉnh cổng nếu bạn sử dụng cổng khác
    'charset': 'utf8',  # Tuỳ chỉnh bộ ký tự nếu cần thiết
}

# Tạo kết nối đến cơ sở dữ liệu MySQL
connection = mysql.connector.connect(**config)

# Tạo con trỏ cho kết nối
cursor = connection.cursor()

# Bây giờ bạn có thể thực hiện các truy vấn và thao tác với cơ sở dữ liệu

# Đừng quên đóng con trỏ và kết nối khi bạn hoàn thành
cursor.close()
connection.close()

Trong ví dụ trên, chúng tôi đã tạo một từ điển config để chứa tất cả các đối số kết nối MySQL. Sau đó, chúng tôi đã sử dụng toán tử ** để truyền các giá trị từ từ điển config vào hàm mysql.connector.connect(). Điều này giúp bạn quản lý các đối số kết nối một cách dễ dàng và dễ đọc hơn.

Thay đổi thời gian chờ kết nối MySQL từ Python

Để thay đổi thời gian chờ kết nối MySQL từ Python, bạn có thể sử dụng đối số connection_timeout trong hàm mysql.connector.connect(). Đối số này đặt thời gian chờ kết nối theo giây. Dưới đây là một ví dụ về cách bạn có thể thực hiện điều này:

import mysql.connector

try:
    # Đặt thời gian chờ kết nối thành 180 giây (3 phút)
    connection = mysql.connector.connect(
        host='localhost',
        user='your_username',
        password='your_password',
        database='your_database',
        connection_timeout=180
    )

    if connection.is_connected():
        db_info = connection.get_server_info()
        print("Connected to MySQL Server version ", db_info)

        # Thực hiện các thao tác với cơ sở dữ liệu ở đây

except mysql.connector.Error as e:
    print("Error while connecting to MySQL", e)
finally:
    if connection.is_connected():
        connection.close()
        print("MySQL connection is closed")

Trong ví dụ trên, chúng tôi đã đặt connection_timeout thành 180 giây (3 phút) trong hàm mysql.connector.connect(). Điều này đảm bảo rằng thời gian chờ kết nối được đặt thành giá trị mong muốn của bạn.

Ngoài ra, bạn cũng có thể thay đổi các giá trị interactive_timeout wait_timeout của máy chủ MySQL bằng cách thực hiện truy vấn SQL sau khi kết nối đã được thiết lập. Tuy nhiên, việc này cần quyền quản trị cơ sở dữ liệu và nó có thể ảnh hưởng đến tất cả các kết nối đến máy chủ.

Kết nối với MySQL bằng Trình kết nối Python C Tiện ích mở rộng

Để kết nối với MySQL bằng Python và trình kết nối C Tiện ích mở rộng (C Extension), bạn cần sử dụng thư viện mysql-connector-c. Dưới đây là hướng dẫn cách cài đặt và sử dụng nó:

Cài đặt mysql-connector-c

Trước tiên, bạn cần cài đặt mysql-connector-c bằng lệnh pip:

pip install mysql-connector-c

Sử dụng mysql-connector-c trong mã Python

Sau khi cài đặt mysql-connector-c, bạn có thể sử dụng nó để kết nối đến cơ sở dữ liệu MySQL. Dưới đây là một ví dụ:

import mysql.connector
from mysql.connector import MySQLConnection, Error

def connect():
    try:
        # Thông tin kết nối
        conn = MySQLConnection(
            user='your_username',
            password='your_password',
            host='localhost',
            database='your_database',
            port=3306  # Cổng mặc định của MySQL
        )

        if conn.is_connected():
            print("Connected to MySQL using C Extension")

            # Thực hiện các thao tác với cơ sở dữ liệu ở đây

    except Error as e:
        print("Error:", e)

    finally:
        if conn.is_connected():
            conn.close()
            print("MySQL connection is closed")

if __name__ == "__main__":
    connect()

Trong ví dụ trên, chúng ta đã sử dụng mysql.connector để kết nối đến cơ sở dữ liệu MySQL bằng C Extension. Hãy đảm bảo thay đổi các thông số kết nối như user, password, host, database, và port để phù hợp với cấu hình cơ sở dữ liệu của bạn.

Với việc sử dụng C Extension, bạn có thể tận dụng hiệu suất tốt hơn trong việc kết nối đến MySQL từ Python.

Kết bài

Kết nối cơ sở dữ liệu MySQL từ Python thông qua MySQL Connector Python là một quá trình quan trọng cho các nhà phát triển và nhà quản trị dữ liệu. Việc này giúp tương tác với cơ sở dữ liệu MySQL, thực hiện truy vấn, cập nhật dữ liệu và quản lý dự án một cách dễ dàng. Sự kết hợp giữa sức mạnh của Python và khả năng của MySQL mở ra nhiều cơ hội cho việc phát triển các ứng dụng và dịch vụ dựa trên dữ liệu mạnh mẽ và hiệu quả.

Cùng chuyên mục:

Cách thêm Progress Bar trong Python với chỉ một dòng Code

Cách thêm Progress Bar trong Python với chỉ một dòng Code

Toán tử Walrus Operator- Tính năng mới trong Python 3.8

Toán tử Walrus Operator- Tính năng mới trong Python 3.8

Cách nạp dữ liệu Machine Learning từ File trong Python

Cách nạp dữ liệu Machine Learning từ File trong Python

Hướng dẫn sử dụng Google Sheets API với Python

Hướng dẫn sử dụng Google Sheets API với Python

Xây dựng  web Python tự động hóa Twitter | Flask, Heroku, Twitter API & Google Sheets API

Xây dựng web Python tự động hóa Twitter | Flask, Heroku, Twitter API & Google Sheets API

Xây dựng Web Machine Learning đẹp mắt với Streamlit và Scikit-learn trong Python

Xây dựng Web Machine Learning đẹp mắt với Streamlit và Scikit-learn trong Python

Hướng dẫn tạo Chatbot đơn giản bằng PyTorch

Hướng dẫn tạo Chatbot đơn giản bằng PyTorch

11 mẹo và thủ thuật để viết Code Python hiệu quả hơn

11 mẹo và thủ thuật để viết Code Python hiệu quả hơn

Hướng dẫn làm ứng dụng TODO với Flask dành cho người mới bắt đầu trong Python

Hướng dẫn làm ứng dụng TODO với Flask dành cho người mới bắt đầu trong Python

Hướng dẫn viết Snake Game bằng Python

Hướng dẫn viết Snake Game bằng Python

Cách sử dụng chế độ interactive trong Python

Cách sử dụng chế độ interactive trong Python

Cách sử dụng Python Debugger với hàm breakpoint()

Cách sử dụng Python Debugger với hàm breakpoint()

Xây dựng ứng dụng Web Style Transfer với PyTorch và Streamlit

Xây dựng ứng dụng Web Style Transfer với PyTorch và Streamlit

Cách cài đặt Jupyter Notebook trong môi trường Conda và thêm Kernel

Cách cài đặt Jupyter Notebook trong môi trường Conda và thêm Kernel

Hướng dẫn xây dựng ứng dụng dự đoán giá cổ phiếu bằng Python

Hướng dẫn xây dựng ứng dụng dự đoán giá cổ phiếu bằng Python

Hướng dẫn tạo ứng dụng AI hội thoại với NVIDIA Jarvis trong Python

Hướng dẫn tạo ứng dụng AI hội thoại với NVIDIA Jarvis trong Python

Hỗ trợ Async trong Django 3.1

Hỗ trợ Async trong Django 3.1

8 mẹo tái cấu trúc Python giúp mã sạch hơn và Pythonic

8 mẹo tái cấu trúc Python giúp mã sạch hơn và Pythonic

Ý nghĩa của if __name__ ==

Ý nghĩa của if __name__ == "__main__" trong Python

Cách xóa phần tử trong danh sách Python

Cách xóa phần tử trong danh sách Python

Top