Hướng dẫn kết nối MySQL trong Python


  • administrators

    Trong bài này tôi sẽ cùng các bạn tìm hiểu cách kết nối cơ sở dữ liệu MySQL trong Python. Bài viết cung cấp những hiểu biết cơ bản về MySQL sử dụng Python. Chúng ta sẽ sử dụng module MySQLdb. Ví dụ được làm trên Ubuntu Linux
    Giới thiệu về MySQL
    MySQL là hệ quản trị cơ sở dữ liệu mở, đa người dùng, đa tiến trình quản trị. MySQL được ưa thích cho các website. Nó cũng là một phần phổ biến của LAMP. Linux, Apache, MySQL, PHP. Hiện tại MySQL thuộc Oracle. Hệ quản trị cơ sở dữ liệu này hỗ trợ hầu hết các hệ điều hành.: BSD, Unix, Linux, Windows và Mac. Hai website Wikipedia và YouTobe sử dụng MySQL, là nhưng website có hàng triệu truy cập mỗi ngày. Nó có hai phiên bản: máy chủ MySQL, hệ thống nhúng.

    Chúng ta cần cài đặt các gói cho việc kết nối trong bài hướng dẫn này. Nếu bạn chưa có MySQL hãy cài đặt nó. Chúng ta dùng lện sau trên Linux
    $ sudo apt-get install mysql-server
    Sau khi cài đặt xong chúng ta cần tạo mật khẩu cho tài khoản root

    $ apt-cache search MySQLdb
    python-mysqldb - A Python interface to MySQL
    python-mysqldb-dbg - A Python interface to MySQL (debug extension)
    bibus - bibliographic database
    eikazo - graphical frontend for SANE designed for mass-scanning
    

    Sau đó chúng ta cần cài đặt thư viên MySQL. Chúng ta sẽ dùng lệnh sau:
    $ sudo apt-get install python-mysqldb
    Chúng ta sẽ tạo cơ sở dữ liệu

    $ mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 30
    Server version: 5.0.67-0ubuntu6 (Ubuntu)
     
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
     
    mysql> SHOW DATABASES;
    +--------------------+
    | Database          |
    +--------------------+
    | information_schema |
    | mysql              |
    +--------------------+
    2 rows in set (0.00 sec)
    

    Chúng ta kết nối cơ sở dữ liệu sử dụng tài khoản root. Sau đó chúng ta xem tất cả các cơ sở dữ liệu

    mysql> CREATE DATABASE testdb;
    Query OK, 1 row affected (0.02 sec)
    

    Chúng ta tạo thành công cơ sở dữ liệu testdb, chúng ta sẽ sử dụng trong quá trình làm việc.

    mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'test623';
    Query OK, 0 rows affected (0.00 sec)
     
    mysql> USE testdb;
    Database changed
     
    mysql> GRANT ALL ON testdb.* TO 'testuser'@'localhost';
    Query OK, 0 rows affected (0.00 sec)
     
    mysql> quit;
    Bye
    

    Bước này trao quyền cho user có thể thực hiện các thao tác trên cơ sở dữ liệu.
    _mysql module

    Dưới đây là một đoạn kết nối đến cơ sở dữ liệu:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    import _mysql
    import sys
     
    try:
        con = _mysql.connect('localhost', 'testuser', 'test623', 'testdb')
           
        con.query("SELECT VERSION()")
        result = con.use_result()
       
        print "MySQL version: %s" % \
            result.fetch_row()[0]
       
    except _mysql.Error, e:
     
        print "Error %d: %s" % (e.args[0], e.args[1])
        sys.exit(1)
     
    finally:
       
        if con:
            con.close()
    

    Ví dụ này sẽ hiện thị phiên bản MySQL. Chúng ta sử dụng câu lệnh SELECT VERSION().
    Chúc các bạn thành công.



  • Anh ơi thế còn bài Hướng dẫn cài đặt pydev trên Eclipse để lập trình Python còn ko ạ.
    Em tìm thấy có bài ở diễn đàn cũ nhưng không xem được.
    Thanks anh


  • administrators

    @Duy Hiếu: Anh sẽ chuyến sang sau em nhé.



  • @Duy-Hiếu đã nói trong Hướng dẫn kết nối MySQL trong Python:

    Anh ơi thế còn bài Hướng dẫn cài đặt pydev trên Eclipse để lập trình Python còn ko ạ.
    Em tìm thấy có bài ở diễn đàn cũ nhưng không xem được.
    Thanks anh

    Mình nghĩ Python dùng Pycharm sẽ tốt hơn (có crack). Trường hợp không muốn phạm luật thì chiến Intellij IDEA cũng ngon.



  • @Khanh-Nguyen vâng em cảm ơn a



  • @tarzanjw vậy hả bạn. Tớ đang tìm hiểu python nhưng là tự học thôi. Có nhiều thứ đơn giản nhưng với người chưa biết gì như tớ thì thấy khó quá :(


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới Cộng đồng Python Việt Nam, vui lòng đợi một lúc để chúng tôi thử kết nối lại.