Ⅰ python怎麼連wind資料庫
先建立一個資料庫。
qw@qw-Latitude-E4300:~$ mysql -u root -p
Enter password:
打開資料庫,正確輸入密碼之後,呈現下面的結果
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 373
Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
在這個狀態下,輸入如下命令,建立一個資料庫:
mysql> create database qiwsirtest character set utf8;
Query OK, 1 row affected (0.00 sec)
注意上面的指令,如果僅僅輸入:create database qiwsirtest,也可以,但是,我在後面增加了character set utf8,意思是所建立的資料庫qiwsirtest,編碼是utf-8的,這樣存入漢字就不是亂碼了。
看到那一行提示:Query OK, 1 row affected (0.00 sec),就說明這個資料庫已經建立好了,名字叫做:qiwsirtest
資料庫建立之後,就可以用python通過已經安裝的mysqldb來連接這個名字叫做qiwsirtest的庫了。進入到python交互模式(現在這個實驗室做實驗)。
>>> import MySQLdb
>>> conn = MySQLdb.connect(host="localhost",user="root",passwd="123123",db="qiwsirtest",port=3306,charset="utf8")
逐個解釋上述命令的含義:
host:等號的後面應該填寫mysql資料庫的地址,因為就資料庫就在本機上(也稱作本地),所以使用localhost,注意引號。如果在其它的伺服器上,這里應該填寫ip地址。一般中小型的網站,資料庫和程序都是在同一台伺服器(計算機)上,就使用localhost了。
user:登錄資料庫的用戶名,這里一般填寫"root",還是要注意引號。當然,如果是比較大型的服務,資料庫會提供不同的用戶,那時候可以更改為相應用戶。但是,不同用戶的許可權可能不同,所以,在程序中,如果要操作資料庫,還要注意所擁有的許可權。在這里用root,就放心了,什麼許可權都有啦。不過,這樣做,在大型系統中是應該避免的。
passwd:上述user賬戶對應的登錄mysql的密碼。我在上面的例子中用的密碼是"123123"。不要忘記引號。
db:就是剛剛通create命令建立的資料庫,我建立的資料庫名字是"qiwsirtest",還是要注意引號。看官如果建立的資料庫名字不是這個,就寫自己所建資料庫名字。
port:一般情況,mysql的默認埠是3306,當mysql被安裝到伺服器之後,為了能夠允許網路訪問,伺服器(計算機)要提供一個訪問埠給它。
charset:這個設置,在很多教程中都不寫,結果在真正進行數據存儲的時候,發現有亂碼。這里我將qiwsirtest這個資料庫的編碼設置為utf-8格式,這樣就允許存入漢字而無亂碼了。注意,在mysql設置中,utf-8寫成utf8,沒有中間的橫線。但是在python文件開頭和其它地方設置編碼格式的時候,要寫成utf-8。切記!
Ⅱ python怎麼連接mysql資料庫
在 Python 語言環境下我們這樣連接資料庫。
In [1]: from mysql import connector
In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")
但是連接資料庫的背後發生了什麼呢?
答案
當我們通過驅動程序(mysql-connector-python,pymysql)連接 MySQL 服務端的時候,就是把連接參數傳遞給驅動程序,驅動程序再根據參數會發起到 MySQL 服務端的 TCP 連接。當 TCP 連接建立之後驅動程序與服務端之間會按特定的格式和次序交換數據包,數據包的格式和發送次序由MySQL 協議規定。MySQL 協議:https://dev.mysql.com/doc/internals/en/client-server-protocol.html整個連接的過程中 MySQL 服務端與驅動程序之間,按如下的次序發送了這些包。
MySQL 服務端向客戶端發送一個握手包,包里記錄了 MySQL-Server 的版本,默認的授權插件,密碼鹽值(auth-data)。
2. MySQL 客戶端發出 ssl 連接請求包(如果有必要的話)。
3. MySQL 客戶端發出握手包的響應包,這個包時記錄了用戶名,密碼加密後的串,客戶端屬性,等等其它信息。
4. MySQL 服務端發出響應包,這個包里記錄了登錄是否成功,如果沒有成功也會給出錯誤信息。
Ⅲ 如何使用python連接mysql資料庫
在 Python 語言環境下我們這樣連接資料庫。
In [1]: from mysql import connector
In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")
但是連接資料庫的背後發生了什麼呢?
答案
當我們通過驅動程序(mysql-connector-python,pymysql)連接 MySQL 服務端的時候,就是把連接參數傳遞給驅動程序,驅動程序再根據參數會發起到 MySQL 服務端的 TCP 連接。當 TCP 連接建立之後驅動程序與服務端之間會按特定的格式和次序交換數據包,數據包的格式和發送次序由MySQL 協議規定。MySQL 協議:https://dev.mysql.com/doc/internals/en/client-server-protocol.html整個連接的過程中 MySQL 服務端與驅動程序之間,按如下的次序發送了這些包。
MySQL 服務端向客戶端發送一個握手包,包里記錄了 MySQL-Server 的版本,默認的授權插件,密碼鹽值(auth-data)。
2. MySQL 客戶端發出 ssl 連接請求包(如果有必要的話)。
3. MySQL 客戶端發出握手包的響應包,這個包時記錄了用戶名,密碼加密後的串,客戶端屬性,等等其它信息。
4. MySQL 服務端發出響應包,這個包里記錄了登錄是否成功,如果沒有成功也會給出錯誤信息。
Ⅳ windows下python怎麼鏈接資料庫
一,安裝MySQL-python
python 連接mysql資料庫需要 Python interface to Mysql包,包名為
MySQL-python
,PyPI上現在到了1.2.5版本。MySQL-python在windows下是通過.exe文件的installer安裝的,
前提是已經安裝的python需要寫入注冊表,參考這篇文章:windows安裝python2.7後的注冊(registry)問題。
然後開始安裝MySQL-python,不過這里有個坑,從PyPI上下載的MySQL-python版本--
MySQL-python-1.2.5.win32-py2.7.exe (md5)--不一定能用,原因是python環境和MySQL-python在軟體位數上可能不一致,
比如,我本地安裝的python是64位,從PyPI上下載的MySQL-python就沒法使用,
會報這樣的錯誤:python ImportError: DLL load failed: %1
只要安裝正確位數的MySQL-python就可以了,這里分享下64位的:
MySQL-python-1.2.5.win-amd64-py2.7.exe
二,簡單使用
參考代碼如下:
Python2.7.6(default,Nov102013,19:24:24)[MSCv.150064bit(AMD64)]onwin32
importMySQLdb
conn=MySQLdb.connect(host='localhost',port=3306,user='root',passwd='123456',db='test')
cur=conn.cursor()
cur.execute('select`title`,`text`from`entries`limit10')
2L
cur.fetchall()
(('bokeyuan','bokeyuantext...'),('googletranslate','googletranslatetext...'))
cur.close()
conn.close()
Ⅳ python 如何遠程連接內網的mysql資料庫
1、進入mysql,創建一個新用戶test:
格式:grant 許可權 on 資料庫名.表名 用戶@登錄主機 identified by "用戶密碼";
grant all privileges on *.* to [email protected] identified by "123456";
或者
grant select,update,insert,delete on *.* to [email protected] identified by "123456";
2、 ./mysqladmin -uroot -ppwd reload
記住:對授權表的任何修改都需要重新reload
這時我們應該可以從192.168.0.2來遠程管理192.168.0.1的資料庫了
下面就是該腳本radius.py,其中出現三個日期:10天以後的日期future、今天的日期now、用戶到期時間userdate,如果userdate <= future 並且 userdate >= now,那麼向radreply表中插入一行,向用戶提示到期時間,及時繳費;如果userdate < now,那麼將該用戶的狀態設為停機,不允許其再登陸。
#! /usr/local/python/bin/python
# -*- coding: UTF-8 -*-
#引入模塊
import MySQLdb
import datetime
#格式化日期,只有相同格式的日期才能進行比較
future = (datetime.date.today() + datetime.timedelta(10)).strftime("%Y-%m-%d")
now = (datetime.date.today()).strftime("%Y-%m-%d")
#這里就是連接遠端資料庫了
conn = MySQLdb.connect (host = "192.168.0.1",
user = "test",
passwd = "123456",
db = "radius")
cursor = conn.cursor ()
cursor.execute ("SELECT login_name,id,last_date FROM customer where last_date!='' and type='包月' and status='開通'")
Ⅵ python如何訪問資料庫
1.背景:
python提供了很多資料庫介面, 常用的資料庫有 MS SQL Server /mysql /oracle 等。
打開鏈接 https://wiki.python.org/moin/DatabaseInterfaces
是python 關於資料庫介面的一個總結 , 可以看到python支持的訪問的資料庫系統。
2.模塊:
python 主要是通過模塊和資料庫連接的。
2.1 安裝模塊:
如果使用anconda,本身就會集合很多模塊,不需要手動安裝。如果用pycharm就要手動安裝模塊。
安裝模塊流程:
下載模塊擴展包放到路徑下——>cmd找到相應路徑——> pip install +擴展包名字
下面列舉一些常用連接資料庫的模塊:pymssql / sqlite3/ PyMySQL/pyodbc/odbc/adodbapi
不同模塊連接的資料庫不同, 支持的版本系統有的也不一樣。但是大體用法都是相近的, 因為有DB-API
相關推薦:《Python教程》
3.Python DB-API
3.1背景:
在沒有DB-API 之前, 不同資料庫有不同的資料庫介面程序, 這就導致python 訪問 database 的介面程序非常混亂。如果我們學習了python 訪問 mysql 的介面程序, 然後要切換到另一個資料庫上, 我們還要在學習另外一個資料庫的介面程序。python DB-API就是為了解決介面程序混亂而生成的。有了DB-API, 在不同資料庫上移植代碼就變得簡單的多了。
3.2Python DB-API:
Python 定義了一套操作資料庫的 DB-API 介面,它是一個規范,定義了一系列必須的對象和資料庫存取方式,以便為不同的底層資料庫系統提供一致的訪問介面
這個鏈接就是python 官方給定的 DB-API 的說明 https://www.python.org/dev/peps/pep-0249/
3.3 Python DB--API的內容:
連接對象:
?Connect()創建連接:host/server /user/password/db connect方法生成一個connect對象, 我們通過這個對象來訪問資料庫。符合標準的模塊都會實現connect方法。
?close():關閉連接
?commit():提交當前事務。做出某些更改後確保已經進行了提交,這樣才可以將這些修改真正地保存到database中
?rollback() 回滾上一次調用 commit()以來對資料庫所做的更改
?cursor():創建游標。系統為用戶開通的一個數據緩沖區,用於存放SQL語句執行結果。cursor游標是有狀態的,它可以記錄當前已經取到結果的第幾個記錄了,因此,一般你只可以遍歷結果集一次。在上面的情況下,如果執行fetchone()會返回為空。這一點在測試時需要注意
游標對象:
?Execute()執行一個資料庫查詢或命令。 execute 執行sql 語句之後運行的結果不會直接output 出來 , 而是放到了一個緩存區, 要用 fetch語句+print 可以查詢sql運行的結果
?fetchone ()得到結果集的下一行
?fetchmany(size)得到結果集的下幾行
?fetchall()返回結果集中剩下的所有行
?rowcount 返回影響的行數
?Close()關閉游標對象
3.4Python DB--API的工作原理及流程:
如圖所示如果把python 和資料庫比作兩個不同的地點, connection 就是路, 能連接python和database。cursor就像在路上行駛的小貨車, 可以用於執行sql 語句, 以及存儲sql 運行的結果。
流程:
4.MS SQL Server 示例:
4.1 導入模塊、創建連接:
4.2 創建游標: 游標創建之後就可以對資料庫進行查詢更改了!
4.3對數據進行操作(創建表、插入行、更新數據、增加列、刪除行、列、表):
4.4 查詢 獲取行:
5.其他:
使用游標的時候要注意, 每次連接只能有一個游標查詢處於活躍狀態。 code演示:
execute()循環和 executemany() 插入100000 條數據測速:
Ⅶ python中mongodb怎麼連接其他伺服器的資料庫
1、基於mongo實現遠程連接
[plain] view plain
mongo -u admin -p admin 192.168.0.197:27017/pagedb
通過mongo實現連接,可以非常靈活的選擇參數選項,參看命令幫助,如下所示:
[plain] view plain
mongo --help
MongoDB shell version: 1.8.3
usage: mongo [options] [db address] [file names (ending in .js)]
db address can be:
foo foo database on local machine
192.169.0.5/foo foo database on 192.168.0.5 machine
192.169.0.5:9999/foo foo database on 192.168.0.5 machine on port 9999
options:
--shell run the shell after executing files
--nodb don't connect to mongod on startup - no 'db address'
arg expected
--quiet be less chatty
--port arg port to connect to
--host arg server to connect to
--eval arg evaluate javascript
-u [ --username ] arg username for authentication
-p [ --password ] arg password for authentication
-h [ --help ] show this usage information
--version show version information
--verbose increase verbosity
--ipv6 enable IPv6 support (disabled by default)
2、基於MongoDB支持的javascript實現遠程連接
當你已經連接到一個遠程的MongoDB資料庫伺服器(例如,通過mongo連接到192.168.0.184),現在想要在這個會話中連接另一個遠程的資料庫伺服器(192.168.0.197),可以執行如下命令:
[plain] view plain
> var x = new Mongo('192.168.0.197:27017')
> var ydb = x.getDB('pagedb');
> use ydb
switched to db ydb
> db
ydb
> ydb.page.findOne()
{
"_id" : ObjectId("4eded6a5bf3bfa0014000003"),
"content" : "巴黎是浪漫的城市,可是...",
"pubdate" : "2006-03-19",
"title" : "巴黎:從布魯塞爾趕到巴黎",
"url" : "http://france.bytravel.cn/Scenery/528/cblsegdbl.html"
}
上述通過MongoDB提供的JavaScript腳本,實現對另一個遠程資料庫伺服器進行連接,操作指定資料庫pagedb的page集合。
如果啟用了安全認證模式,可以在獲取資料庫連接實例時,指定認證賬號,例如:
[plain] view plain
> var x = new Mongo('192.168.0.197:27017')
> var ydb = x.getDB('pagedb', 'shirdrn', '(jkfFS$343$_\=\,.F@3');
> use ydb
switched to db ydb
Ⅷ 怎麼做才能使mysql和python連接起來
什麼是 PyMySQL?
PyMySQL 是在 Python3.x 版本中用於連接 MySQL 伺服器的一個庫,Python2中則使用mysqldb。
PyMySQL 遵循 Python 資料庫 API v2.0 規范,並包含了 pure-Python MySQL 客戶端庫。
PyMySQL 安裝
在使用 PyMySQL 之前,我們需要確保 PyMySQL 已安裝。
PyMySQL 下載地址:https://github.com/PyMySQL/PyMySQL。
如果還未安裝,我們可以使用以下命令安裝最新版的 PyMySQL:
$ pip3 install PyMySQL
如果你的系統不支持 pip 命令,可以使用以下方式安裝:
1、使用 git 命令下載安裝包安裝(你也可以手動下載):
$ git clone https://github.com/PyMySQL/PyMySQL$ cd PyMySQL/$ python3 setup.py install
2、如果需要制定版本號,可以使用 curl 命令來安裝:
$ # X.X 為 PyMySQL 的版本號$ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz$ cd PyMySQL*$ python3 setup.py install
$ # 現在你可以刪除 PyMySQL* 目錄
注意:請確保您有root許可權來安裝上述模塊。
安裝的過程中可能會出現"ImportError: No mole named setuptools"的錯誤提示,意思是你沒有安裝setuptools,你可以訪問https://pypi.python.org/pypi/setuptools找到各個系統的安裝方法。
Linux 系統安裝實例:
$ wget https://bootstrap.pypa.io/ez_setup.py$ python3 ez_setup.py
資料庫連接
連接資料庫前,請先確認以下事項:
您已經創建了資料庫 TESTDB.
在TESTDB資料庫中您已經創建了表 EMPLOYEE
EMPLOYEE表欄位為 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。
連接資料庫TESTDB使用的用戶名為 "testuser" ,密碼為 "test123",你可以可以自己設定或者直接使用root用戶名及其密碼,Mysql資料庫用戶授權請使用Grant命令。
在你的機子上已經安裝了 Python MySQLdb 模塊。
如果您對sql語句不熟悉,可以訪問我們的SQL基礎教程
實例:
以下實例鏈接 Mysql 的 TESTDB 資料庫:
實例(Python 3.0+)
#!/usr/bin/python3
import pymysql
# 打開資料庫連接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用 cursor() 方法創建一個游標對象 cursorcursor = db.cursor()
# 使用 execute() 方法執行 SQL 查詢 cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法獲取單條數據.data = cursor.fetchone()
print ("Database version : %s " % data)
# 關閉資料庫連接db.close()
執行以上腳本輸出結果如下:
創建資料庫表
如果資料庫連接存在我們可以使用execute()方法來為資料庫創建表,如下所示創建表EMPLOYEE:
實例(Python 3.0+)
#!/usr/bin/python3
import pymysql
# 打開資料庫連接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用 cursor() 方法創建一個游標對象 cursorcursor = db.cursor()
# 使用 execute() 方法執行 SQL,如果表存在則刪除cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
# 使用預處理語句創建表sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
cursor.execute(sql)
# 關閉資料庫連接db.close()
資料庫插入操作
以下實例使用執行 SQL INSERT 語句向表 EMPLOYEE 插入記錄:
實例(Python 3.0+)
#!/usr/bin/python3
import pymysql
# 打開資料庫連接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用cursor()方法獲取操作游標 cursor = db.cursor()
# SQL 插入語句sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""try: # 執行sql語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()except: # 如果發生錯誤則回滾
db.rollback()
# 關閉資料庫連接db.close()
以上例子也可以寫成如下形式:
實例(Python 3.0+)
#!/usr/bin/python3
import pymysql
# 打開資料庫連接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用cursor()方法獲取操作游標 cursor = db.cursor()
# SQL 插入語句sql = "INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('%s', '%s', %s, '%s', %s)" % ('Mac', 'Mohan', 20, 'M', 2000)try: # 執行sql語句
cursor.execute(sql)
# 執行sql語句
db.commit()except: # 發生錯誤時回滾
db.rollback()
# 關閉資料庫連接db.close()
以下代碼使用變數向SQL語句中傳遞參數:
資料庫查詢操作
Python查詢Mysql使用 fetchone() 方法獲取單條數據, 使用fetchall() 方法獲取多條數據。
fetchone():該方法獲取下一個查詢結果集。結果集是一個對象
fetchall():接收全部的返回結果行.
rowcount:這是一個只讀屬性,並返回執行execute()方法後影響的行數。
實例:
查詢EMPLOYEE表中salary(工資)欄位大於1000的所有數據:
實例(Python 3.0+)
#!/usr/bin/python3
import pymysql
# 打開資料庫連接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用cursor()方法獲取操作游標 cursor = db.cursor()
# SQL 查詢語句sql = "SELECT * FROM EMPLOYEE
WHERE INCOME > %s" % (1000)try: # 執行SQL語句
cursor.execute(sql)
# 獲取所有記錄列表
results = cursor.fetchall()
for row in results: fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 列印結果
print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % (fname, lname, age, sex, income ))except: print ("Error: unable to fetch data")
# 關閉資料庫連接db.close()
以上腳本執行結果如下:
資料庫更新操作
更新操作用於更新數據表的的數據,以下實例將 TESTDB 表中 SEX 為 'M' 的 AGE 欄位遞增 1:
實例(Python 3.0+)
#!/usr/bin/python3
import pymysql
# 打開資料庫連接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用cursor()方法獲取操作游標 cursor = db.cursor()
# SQL 更新語句sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')try: # 執行SQL語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()except: # 發生錯誤時回滾
db.rollback()
# 關閉資料庫連接db.close()
刪除操作
刪除操作用於刪除數據表中的數據,以下實例演示了刪除數據表 EMPLOYEE 中 AGE 大於 20 的所有數據:
實例(Python 3.0+)
#!/usr/bin/python3
import pymysql
# 打開資料庫連接db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用cursor()方法獲取操作游標 cursor = db.cursor()
# SQL 刪除語句sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)try: # 執行SQL語句
cursor.execute(sql)
# 提交修改
db.commit()except: # 發生錯誤時回滾
db.rollback()
# 關閉連接db.close()
執行事務
事務機制可以確保數據一致性。
事務應該具有4個屬性:原子性、一致性、隔離性、持久性。這四個屬性通常稱為ACID特性。
原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性(consistency)。事務必須是使資料庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。
隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對並發的其他事務是隔離的,並發執行的各個事務之間不能互相干擾。
持久性(rability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對資料庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。
Python DB API 2.0 的事務提供了兩個方法 commit 或 rollback。
實例
實例(Python 3.0+)
# SQL刪除記錄語句sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)try: # 執行SQL語句
cursor.execute(sql)
# 向資料庫提交
db.commit()except: # 發生錯誤時回滾
db.rollback()
對於支持事務的資料庫, 在Python資料庫編程中,當游標建立之時,就自動開始了一個隱形的資料庫事務。
commit()方法游標的所有更新操作,rollback()方法回滾當前游標的所有操作。每一個方法都開始了一個新的事務。
錯誤處理
DB API中定義了一些資料庫操作的錯誤及異常,下表列出了這些錯誤和異常:
異常
描述
Warning 當有嚴重警告時觸發,例如插入數據是被截斷等等。必須是 StandardError 的子類。
Error 警告以外所有其他錯誤類。必須是 StandardError 的子類。
InterfaceError 當有資料庫介面模塊本身的錯誤(而不是資料庫的錯誤)發生時觸發。 必須是Error的子類。
DatabaseError 和資料庫有關的錯誤發生時觸發。 必須是Error的子類。
DataError 當有數據處理時的錯誤發生時觸發,例如:除零錯誤,數據超范圍等等。 必須是DatabaseError的子類。
OperationalError 指非用戶控制的,而是操作資料庫時發生的錯誤。例如:連接意外斷開、 資料庫名未找到、事務處理失敗、內存分配錯誤等等操作資料庫是發生的錯誤。 必須是DatabaseError的子類。
IntegrityError 完整性相關的錯誤,例如外鍵檢查失敗等。必須是DatabaseError子類。
InternalError 資料庫的內部錯誤,例如游標(cursor)失效了、事務同步失敗等等。 必須是DatabaseError子類。
ProgrammingError 程序錯誤,例如數據表(table)沒找到或已存在、SQL語句語法錯誤、 參數數量錯誤等等。必須是DatabaseError的子類。
NotSupportedError 不支持錯誤,指使用了資料庫不支持的函數或API等。例如在連接對象上 使用.rollback()函數,然而資料庫並不支持事務或者事務已關閉。 必須是DatabaseError的子類。
Ⅸ python怎麼調用資料庫
安裝MySQL驅動
由於MySQL伺服器以獨立的進程運行,並通過網路對外服務,所以,需要支持Python的MySQL驅動來連接到MySQL伺服器。
MySQL官方提供了mysql-connector-python驅動,但是安裝的時候需要給pip命令加上參數--allow-external:
pip install mysql-connector-python --allow-external mysql-connector-python
如果上面的命令安裝失敗,可以試試另一個驅動:
pip install mysql-connector
除了使用mysql.connector還可以使用pymysql