4 cách bạn có thể kết nối Python với MySQL

MySQL là một trong những cơ sở dữ liệu quan hệ phổ biến nhất. Nó cho phép bạn lưu trữ dữ liệu trong các bảng và tạo mối quan hệ giữa các bảng đó. Để sử dụng MySQL, chạy như một máy chủ cơ sở dữ liệu, bạn sẽ cần viết mã để kết nối với nó.
Hầu hết các ngôn ngữ lập trình như Python đều cung cấp hỗ trợ cho việc này. Trên thực tế, trong Python, có một số cách tiếp cận bạn có thể thực hiện, mỗi cách đều có lợi thế riêng.
Mục Lục
Chuẩn bị cấu hình MySQL của bạn
Để kết nối với cơ sở dữ liệu, bạn cần các giá trị sau:
- Host: vị trí của máy chủ MySQL, localhost nếu bạn đang chạy nó trên cùng một máy tính.
- Người dùng: tên người dùng MySQL.
- Mật khẩu: mật khẩu MySQL.
- Tên cơ sở dữ liệu: tên cơ sở dữ liệu bạn muốn kết nối.
Trước khi kết nối với cơ sở dữ liệu MySQL, hãy tạo một thư mục mới:
mkdir python-mysql
Thiết lập môi trường ảo Python
Môi trường ảo Python cho phép bạn cài đặt các gói và chạy các tập lệnh trong một môi trường cô lập. Khi bạn tạo một môi trường ảo, sau đó bạn có thể cài đặt các phiên bản Python và các phụ thuộc Python bên trong nó. Bằng cách này, bạn tách biệt các phiên bản khác nhau và tránh các vấn đề về tương thích.
Kết nối với MySQL bằng mysqlclient
Trình điều khiển mysqlclient là một giao diện với máy chủ cơ sở dữ liệu MySQL cung cấp API máy chủ cơ sở dữ liệu Python. Nó được viết bằng C.
Chạy lệnh sau trong môi trường ảo để cài đặt mysqlclient:
pip install mysqlclient
Nếu bạn đang sử dụng máy Linux, hãy cài đặt thư viện và tiêu đề phát triển Python 3 và MySQL trước.
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
sudo yum install python3-devel mysql-devel
Trên Windows, bạn có thể cài đặt mysqlclient bằng tệp bánh xe nhị phân. Tải xuống tệp mysqlclient tương thích với nền tảng của bạn từ bộ sưu tập không chính thức của Christoph Gohlke. Sau đó, bạn có thể sử dụng tệp bánh xe đã tải xuống với pip để cài đặt mysqlclient như sau:
pip install c:\mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl
Sử dụng mã kết nối sau để kết nối với cơ sở dữ liệu MySQL sau khi quá trình cài đặt hoàn tất:
import MySQLdbconnection = MySQLdb.connect(
host="localhost",
user="<mysql_user>",
passwd="<mysql_password>",
db="<database_name>"
)
cursor = connection.cursor()
cursor.execute("select database();")
db = cursor.fetchone()
if db:
print("You're connected to database: ", db)
else:
print('Not connected.')
Trong chương trình này, bạn có:
- Mysqlclient đã nhập.
- Đã tạo một đối tượng kết nối bằng MySQLdb.connect ().
- Đã chuyển chi tiết cấu hình cơ sở dữ liệu cho MySQLdb.connect ().
- Đã tạo một đối tượng con trỏ để tương tác với MySQL.
- Đã sử dụng đối tượng con trỏ để tìm nạp phiên bản của cơ sở dữ liệu MySQL được kết nối.
Hãy nhớ chuyển đổi các chi tiết cơ sở dữ liệu với của riêng bạn.
Kết nối với MySQL bằng mysql-connector-python
mysql-connector-python là trình điều khiển kết nối chính thức được Oracle hỗ trợ. Nó cũng được viết bằng Python thuần túy.
Cài đặt nó qua pip để bắt đầu sử dụng nó.
pip install mysql-connector-python
Kết nối với MySQL bằng mã kết nối sau.
import mysql.connector
from mysql.connector import Errorconnection = mysql.connector.connect(host="localhost",
user="<mysql_user>",
passwd="<mysql_password>",
db="<database_name>")
try:
if connection.is_connected():
cursor = connection.cursor()
cursor.execute("select database();")
db = cursor.fetchone()
print("You're connected to dtabase: ", db)
except Error as e:
print("Error while connecting to MySQL", e)
finally:
if connection.is_connected():
cursor.close()
connection.close()
print("MySQL connection is closed")
Mã kết nối ở trên thực hiện tương tự như mã kết nối mysqclient.
Sau khi tạo đối tượng kết nối, bạn có thể tạo một con trỏ, sau đó bạn có thể sử dụng con trỏ này để thực thi các truy vấn trên cơ sở dữ liệu.
Chương trình kết nối này cũng sử dụng cố gắng bắt khối. Lớp Lỗi, từ mysql.connector, cho phép bạn nắm bắt các ngoại lệ được nêu ra khi kết nối với cơ sở dữ liệu. Điều này sẽ đơn giản hóa việc gỡ lỗi và khắc phục sự cố.
Kết nối với MySQL bằng PyMySQL
Trình điều khiển kết nối PyMySQL là sự thay thế cho MySQLdb. Để sử dụng nó, bạn cần phải chạy Python 3.7 hoặc mới hơn và máy chủ MySQL của bạn phải là phiên bản 5. 7 hoặc mới hơn. Nếu bạn sử dụng MariaDB, nó phải là phiên bản 10.2 trở lên. Bạn có thể tìm thấy các yêu cầu này trên trang PyMySQL Github.
Để cài đặt PyMySQL, hãy chạy lệnh sau.
pip install PyMySQL
Kết nối với MySQL bằng PyMySQL bằng mã này.
import pymysqlconnection = pymysql.connect(host="localhost",
user="<mysql_user>",
password="<mysql_password>",
database="<database_name>")
try:
cursor = connection.cursor()
cursor.execute("select database();")
db = cursor.fetchone()
print("You're connected to database: ", db)
except pymysql.Error as e:
print("Error while connecting to MySQL", e)
finally:
cursor.close()
connection.close()
print("MySQL connection is closed")
Khi bạn đã tạo kết nối và tạo đối tượng con trỏ, bạn có thể bắt đầu thực hiện các truy vấn SQL.
Kết nối với MySQL bằng aiomysql
Trình điều khiển kết nối aiomysql giống như phiên bản không đồng bộ của PyMySQL. Nó cung cấp quyền truy cập vào cơ sở dữ liệu MySQL từ khung asyncio.
Để sử dụng aiomysql, bạn cần cài đặt Python 3.7+ và PyMySQL trong môi trường phát triển của mình.
Chạy lệnh sau để cài đặt asyncio và aiomysql.
pip install asyncio
pip install aiomysql
Với aiomysql, bạn có thể kết nối Python với MySQL bằng đối tượng kết nối cơ bản và sử dụng nhóm kết nối.
Dưới đây là một ví dụ cho thấy cách kết nối với cơ sở dữ liệu MySQL bằng đối tượng kết nối.
import asyncio
import aiomysql
loop = asyncio.get_event_loop()async def python_mysql():
connection = await aiomysql.connect(host="localhost",
user="<mysql_user>",
password="<mysql_password>",
database="<database_name>")
cur = await connection.cursor()
await cur.execute("select database();")
db = await cur.fetchone()
print("You're connected to database: ", db)
await cur.close()
connection.close()
loop.run_until_complete(python_mysql())
Không giống như một đối tượng kết nối cơ sở dữ liệu, một nhóm kết nối cho phép bạn sử dụng lại các kết nối cơ sở dữ liệu. Nó thực hiện điều này bằng cách duy trì một nhóm các kết nối mở và chỉ định chúng theo yêu cầu. Khi một máy khách yêu cầu một kết nối, họ sẽ được gán một kết nối từ nhóm. Sau khi máy khách đóng kết nối, kết nối sẽ quay trở lại nhóm.
Mã cơ bản để kết nối thông qua một nhóm như sau:
import asyncio
import aiomysql
loop = asyncio.get_event_loop()
async def python_mysql():
pool = await aiomysql.create_pool(host="localhost",
user="<mysql_user>",
password="<mysql_password>",
database="<database_name>", loop=loop, autocommit=False)async with pool.acquire() as connection:
cursor = await connection.cursor()
await cur.execute("select database();")
db = await cur.fetchone()
print("You're connected to database: ", db)
pool.close()
await pool.wait_closed()
loop.run_until_complete(python_mysql())
Chương trình này sẽ in phiên bản MySQL mà bạn đã kết nối khi chạy nó.
Quản lý cơ sở dữ liệu PostgreSQL của bạn
Bài viết này đã chỉ cho bạn một số cách để bạn có thể kết nối một ứng dụng Python với MySQL. Mỗi phương thức này cho phép bạn tương tác và thực thi các truy vấn trên cơ sở dữ liệu.
Sau khi kết nối với cơ sở dữ liệu MySQL, bạn có thể thực hiện các truy vấn dữ liệu và thực hiện các giao dịch cơ sở dữ liệu. Bạn có thể tạo một ứng dụng Python, kết nối nó với MySQL và bắt đầu lưu trữ dữ liệu.