Python連接MySQL數據庫(mysql-connector-python)

本文介紹的庫是mysql-connector-python,它是MySQL的Python驅動,使用它你可以連接MySQL數據庫,訪問、操作表和數據。MySQL的Python驅動也不少,但是mysql-connector-python是最流行、最穩定的。

很久以前,我做過使用MySQL的C API操作數據庫,相比之下,Python更加簡潔、方便。

#1 安裝 MySQL connector

mysql-connector-python支持Linux、Mac OS X和Windows系統。

mysql-connector-python的下載地址http://dev.mysql.com/downloads/connector/python/

我以Ubuntu系統Python2.7爲例:

方法一:使用apt安裝:


1

$ sudo apt install python-mysql.connector

方法二:使用pip安裝:

1

$ sudo pip install mysql-connector-python

方法三:安裝最新版

1

2

$ wget http://cdn.mysql.com//Downloads/Connector-Python/mysql-connector-python-cext_2.1.3-1ubuntu15.04_amd64.deb

$ sudo dpkg -i mysql-connector-python-cext_2.1.3-1ubuntu15.04_amd64.deb

查看安裝的mysql-connector-python版本:

Python連接MySQL數據庫(mysql-connector-python)

#2 連接MySQL

連接本地MySQL數據庫:

1

2

3

4

5

6

7

8

9

10

import mysql.connector

 

conn = mysql.connector.connect(

         user='root',

         password='test1234',

         host='127.0.0.1',

         database='test')

 

# 關閉數據庫

conn.close()

如果提供的用戶、數據庫不對,會輸出如下錯誤信息:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Traceback (most recent call last):

  File "test.py", line 7, in <module>

    database='test')

  File "/usr/lib/python2.7/dist-packages/mysql/connector/__init__.py", line 162, in connect

    return MySQLConnection(*args, **kwargs)

  File "/usr/lib/python2.7/dist-packages/mysql/connector/connection.py", line 129, in __init__

    self.connect(**kwargs)

  File "/usr/lib/python2.7/dist-packages/mysql/connector/connection.py", line 454, in connect

    self._open_connection()

  File "/usr/lib/python2.7/dist-packages/mysql/connector/connection.py", line 421, in _open_connection

    self._ssl)

  File "/usr/lib/python2.7/dist-packages/mysql/connector/connection.py", line 204, in _do_auth

    self._auth_switch_request(username, password)

  File "/usr/lib/python2.7/dist-packages/mysql/connector/connection.py", line 240, in _auth_switch_request

    raise errors.get_exception(packet)

mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)


#3 執行SQL語句


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

import mysql.connector

 

conn = mysql.connector.connect(

         user='root',

         password='test1234',

         host='127.0.0.1',

         database='test')

 

cur = conn.cursor()

 

# 要執行的SQL語句

query = ("SELECT * FROM sometable")

 

# 執行查詢

cur.execute(query)

 

for (id, name, class, score) in cur:

    print("{}, {}, {}, {}".format(id, name,class,score))

 

cur.close()

conn.close()



文檔:http://dev.mysql.com/doc/connector-python/en/

轉自:http://blog.topspeedsnail.com/archives/6018

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章