Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách kết nối với MySQL bằng Python

Python cung cấp một số cách để kết nối với cơ sở dữ liệu MySQL và xử lý dữ liệu. Bài viết này mô tả ba phương pháp.

Cơ sở dữ liệu MySQL và người dùng phải đã tồn tại trước khi bạn có thể sử dụng bất kỳ phương pháp nào sau đây. Để biết thông tin về cách quản lý cơ sở dữ liệu MySQL bằng cPanel, vui lòng xem bài viết này.

Kết nối với MySQL bằng Python

Trước khi bạn có thể truy cập cơ sở dữ liệu MySQL bằng Python, bạn phải cài đặt một (hoặc nhiều) gói sau trong môi trường ảo:

  • mysqlclient :Gói này chứa MySQLdb mô-đun. Nó được viết bằng C và là một trong những gói Python được sử dụng phổ biến nhất cho MySQL.
  • mysql-connector-python :Gói này chứa mysql.connector mô-đun. Nó được viết hoàn toàn bằng Python.
  • PyMySQL :Gói này chứa pymysql mô-đun. Nó được viết hoàn toàn bằng Python.

Cả ba gói này đều sử dụng API cơ sở dữ liệu SQL di động của Python. Điều này có nghĩa là nếu bạn chuyển từ mô-đun này sang mô-đun khác, bạn có thể sử dụng lại gần như tất cả mã hiện có của mình (mẫu mã bên dưới minh họa cách thực hiện điều này).

Thiết lập môi trường ảo Python và cài đặt gói MySQL

Để thiết lập môi trường ảo Python và cài đặt gói MySQL, hãy làm theo các bước sau:

  1. Đăng nhập vào tài khoản của bạn bằng SSH.
  2. Để tạo một môi trường ảo, hãy nhập các lệnh sau:
    cd ~
    virtualenv sqlenv
    
    • virtualenv lệnh tạo một môi trường ảo có tên là sqlenv và các lệnh tiếp theo trong quy trình này giả định rằng môi trường được đặt tên là sqlenv . Bạn có thể sử dụng bất kỳ tên môi trường nào bạn muốn, nhưng hãy đảm bảo rằng bạn thay thế tất cả các lần xuất hiện của sqlenv với tên môi trường của riêng bạn.
    • Nếu bạn đang chạy phiên bản Python thay thế (ví dụ:bạn đã định cấu hình thủ công phiên bản Python mới hơn cho tài khoản của mình như được mô tả trong bài viết này), bạn có thể chỉ định phiên bản đó cho môi trường ảo. Ví dụ:để cài đặt phiên bản Python 3.8 do người dùng định cấu hình trong môi trường ảo, bạn có thể sử dụng lệnh sau:
      virtualenv -p /home/username/bin/python3.8 sqlenv
      
  3. Để kích hoạt môi trường ảo, hãy nhập lệnh sau:

    source sqlenv/bin/activate
    Dấu nhắc lệnh hiện bắt đầu bằng (sqlenv) để chỉ ra rằng bạn đang làm việc trong môi trường ảo Python. Tất cả các lệnh sau trong quy trình này giả định rằng bạn đang làm việc trong môi trường ảo. Nếu bạn đăng xuất khỏi phiên SSH của mình (hoặc hủy kích hoạt môi trường ảo bằng cách sử dụng nút hủy kích hoạt ), hãy đảm bảo rằng bạn đã kích hoạt lại môi trường ảo trước khi làm theo các bước bên dưới và chạy mã mẫu.
  4. Để cập nhật pip trong môi trường ảo, gõ lệnh sau:

    pip install -U pip
  5. Nhập lệnh cho gói bạn muốn cài đặt:

    • Để cài đặt mysqlclient gói, nhập lệnh sau:
      pip install mysqlclient
    • Để cài đặt mysql-connector-python gói, nhập lệnh sau:

      pip install mysql-connector-python
    • Để cài đặt pymysql gói, nhập lệnh sau:

      pip install pymysql
Mẫu mã

Sau khi bạn cài đặt gói MySQL trong môi trường ảo, bạn đã sẵn sàng làm việc với cơ sở dữ liệu thực tế. Mã Python mẫu sau đây trình bày cách thực hiện điều này, cũng như việc chuyển đổi giữa các triển khai gói SQL khác nhau dễ dàng như thế nào. Mã mẫu hoạt động với Python 2.7 và Python 3.x.

Trong mã của riêng bạn, hãy thay thế tên người dùng với tên người dùng cơ sở dữ liệu MySQL, mật khẩu với mật khẩu của người dùng cơ sở dữ liệu và dbname với tên cơ sở dữ liệu:

#!/usr/bin/python

from __future__ import print_function

hostname = 'localhost'
username = 'username'
password = 'password'
database = 'dbname'

# Simple routine to run a query on a database and print the results:
def doQuery( conn ) :
    cur = conn.cursor()

    cur.execute( "SELECT fname, lname FROM employee" )

    for firstname, lastname in cur.fetchall() :
        print( firstname, lastname )


print( "Using mysqlclient (MySQLdb):" )
import MySQLdb
myConnection = MySQLdb.connect( host=hostname, user=username, passwd=password, db=database )
doQuery( myConnection )
myConnection.close()

print( "Using mysql.connector:" )
import mysql.connector
myConnection = mysql.connector.connect( host=hostname, user=username, passwd=password, db=database )
doQuery( myConnection )
myConnection.close()

print( "Using pymysql:" )
import pymysql
myConnection = pymysql.connect( host=hostname, user=username, passwd=password, db=database )
doQuery( myConnection )
myConnection.close()

Ví dụ này tạo một chuỗi Kết nối các đối tượng mở cùng một cơ sở dữ liệu bằng cách sử dụng các mô-đun MySQL khác nhau. Vì cả ba mô-đun MySQL đều sử dụng giao diện API cơ sở dữ liệu SQL di động nên chúng có thể sử dụng mã trong doQuery () hoạt động mà không có bất kỳ sửa đổi nào.

Khi bạn có Kết nối đối tượng được liên kết với cơ sở dữ liệu, bạn có thể tạo Con trỏ vật. Con trỏ đối tượng cho phép bạn chạy execute () phương thức này cho phép bạn chạy các câu lệnh SQL thô (trong trường hợp này là SELECT truy vấn trên bảng có tên nhân viên ).

Như bạn có thể thấy, API cơ sở dữ liệu SQL di động của Python giúp chuyển đổi giữa các mô-đun MySQL trong mã của bạn rất dễ dàng. Trong ví dụ ở trên, các thay đổi mã duy nhất cần thiết để sử dụng một mô-đun khác là đối với nhập kết nối các câu lệnh.

Thông tin khác

  • Để biết thêm thông tin về API cơ sở dữ liệu SQL di động của Python, vui lòng truy cập https://www.python.org/dev/peps/pep-0249.
  • Để biết thêm thông tin về mysqlclient gói, vui lòng truy cập https://pypi.org/project/mysqlclient.
  • Để biết thêm thông tin về mysql-connector-python gói, vui lòng truy cập https://pypi.python.org/pypi/mysql-connector-python.
  • Để biết thêm thông tin về PyMySQL , vui lòng truy cập https://pypi.python.org/pypi/PyMySQL.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật truy vấn để cập nhật hàng trong MySQL

  2. TIME_TO_SEC () Ví dụ - MySQL

  3. Cách thay đổi mật khẩu cơ sở dữ liệu

  4. Cách lưu trữ Ngày của Java thành Mysql datetime với JPA

  5. Không thể tải plugin xác thực 'caching_sha2_password'