MySQL là một trong những lựa chọn hiệu quả nhất để dùng với Python. Module Python "mysqldb" cho phép bạn kết nối Python với MySQL. Nếu module không được cài trên hệ thống, lỗi "no module named 'mysqldb'" sẽ xảy ra.
ModuleNotFoundError: No module named MySQLdb Fix
Bài viết này sẽ giải quyết các nguyên nhân và giải pháp để khắc phục lỗi "no module named mysqldb".
Tại Sao Lỗi Này Xảy Ra?
Một module Python dựa trên một gói đơn lẻ hoặc nhiều gói. Nếu một trong các gói liên kết của "mysqldb" không được cài, và bạn cố import module, lỗi "no module named mysqldb" sẽ xảy ra.
Ở đây, đoạn code cho thấy chúng ta cố import nhưng lỗi xảy ra:
ModelNotFoundError
Giải Pháp: Cài Đặt "MySQLdb"
Module "MySQLdb" có sẵn qua PIP, trình quản lý dựa trên Python. Đảm bảo PIP đã cài trên hệ thống. Giải pháp hoàn chỉnh được demo qua các bước sau:
Bước 1: Cài Đặt PIP
PIP có thể cài trên Linux dùng các lệnh sau:
$ sudo apt install python3-pip #Cho Debian và Ubuntu-Based Distributions $ sudo yum install python3-pip #Cho CentOS7/RHEL $ sudo dnf install python3-pip #Cho Fedora/CentOS8 $ sudo pacman -S python3-pip #Cho Arch-Based Distributions
Installing python3-pip
Bạn cần dùng tên gói "python-pip" để cài PIP cho Python2.
Bước 2: Cài Gói "mysqlclient"
Module "MySQLdb" liên kết với hai gói cần cài trước khi import các gói khác của PIP. Gói đầu tiên là "mysqlclient" cho phép Python kết nối MySQL.
Sự vắng mặt của gói này là lý do chính bạn không import được module. "mysqlclient" có thể cài trên Linux như sau:
$ pip3 install mysqlclient
Install MySQL package
Bạn có thể nhận lỗi khi cài "mysqlclient". Đó là vì bạn không có gói development của Python để nhúng gói "mysqlclient" vào hệ thống. Bộ gói này có thể cài bằng lệnh:
$ sudo apt install python3-dev default-libmysqlclient-dev build-essential $ sudo yum install python3-dev default-libmysqlclient-dev build-essential $ sudo dnf install python3-dev default-libmysqlclient-dev build-essential
Lưu ý: "apt", "yum", "dnf" tương ứng với Debian/Ubuntu, CentOS/RHEL, Fedora based distributions.
MySQL build essentials installation
Sau khi cài "mysqlclient," thử import module. Nếu lỗi vẫn còn, tiếp tục bước tiếp theo.
Bước 3: Cài Đặt "mysql-connector-python"
Gói này cho phép Python kết nối với Cơ Sở Dữ Liệu MySQL. Lệnh PIP sau có thể dùng để cài:
$ sudo pip3 install mysql-connector-python
connecting python to MySQL DB
Nếu bạn dùng PIP cho Python2, thay "pip3" bằng "pip2".
Bước 4: Xác Minh Giải Pháp
Bây giờ, import module dùng tên đầy đủ:
>>> import MySQLdb
Import MySQLdb
Ảnh chụp màn hình cho thấy module đã được import vào môi trường Python.
Lỗi "no module named mysqldb" xảy ra khi user cố import nó khi thiếu các gói cần thiết để import module này. Lỗi có thể khắc phục bằng cách cài gói "mysqlclient" trên hệ thống. Tuy nhiên, nếu chưa khắc phục, cài gói "mysql-connector-python" dùng PIP. Bài viết đã liệt kê nguyên nhân và giải pháp khắc phục lỗi module "MySQLdb" trên Linux.
VỀ TÁC GIẢ

Muhammad Zubyan
Muhammad Zubyan là chuyên gia Google IT Support Professional chứng chỉ với hơn 7 năm kinh nghiệm rộng rãi. Anh đã làm việc trên hơn 1500 máy tính, tích lũy kiến thức quý giá cho phép phát hiện và xử lý bất kỳ nguyên nhân gốc rối phức tạp nào của các vấn đề và lỗi liên quan đến Windows. Ngoài việc quản lý Appuals với vai trò Senior Editor, anh hiện đang phát triển chương trình Game Optimization riêng phục vụ cả game thủ và người dùng phổ thông.