python怎麼連接資料庫
Python是計算機常用的計算機語言,在實際的操作中我們會涉及到Python連接資料庫的相關實際操作,假如你對Python連接資料庫的實際操作方案感興趣或是有疑問,你都可以瀏覽下面的文章。一. Python和mysql資料庫連接Python 要連接 MySQL 可以使用 MySQL_python模塊首先確定是否安裝,在指令模式輸入 python,然後便可以開始檢查:Python 2.5.1 (r251:54863, May 2 2007, 16:56:35)[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2 Type "help", "right", "credits" or "license"
for more information. >>> import MySQLdb Traceback (most recent call last): File "", line 1, in ImportError: No mole named MySQLdb >>> exit() 如果見以上面的"ImportError: No mole named MySQLdb" 一句,便表示系統沒有安裝,注意:在shell中,輸出是 區分大小寫的也可以通過輸入下面這些命令來測試你的資料庫配置:>>> from django.db import connection >>>
cursor = connection.cursor() 如果沒有顯示什麼錯誤信息,那麼你的資料庫配置是正確的。 否則,你就得查看錯誤信息來糾正錯誤。上面的相關代碼是對Python連接資料庫中Python和mysql資料庫連接的前部分代碼的示例。 安裝mysql_python模塊到MySQLdb 官方網站 下載並安裝MySQLdb版本:(win)MySQL-python-1.2.2.win32-py2.6.exe 直接運行安裝即可按如下步驟安裝$ tar zxvf MySQL-python-1.2.2.tar.gz $ cd MySQL-python-1.2.2 $ python setup.py build $ python setup.py install 附件: libguide40.dll.zip(77.3 KB) libmmd.dll.zip(169 KB) libmySQL.dll.zip(861 KB) 以上就是對python連接資料庫中 python和mysql資料庫連接相關的內容的介紹,望採納
2. 如何使用Python連接Oracle資料庫
下載cx_Oracle,下載之後就可以使用了。
簡單的使用流程如下:
1.引用模塊cx_Oracle
2.連接資料庫
3.獲取cursor
4.使用cursor進行各種操作
5.關閉cursor
6.關閉連接參考代碼:
import cx_Oracle #引用模塊cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g') #連接資料庫
c=conn.cursor() #獲取cursor
x=c.execute('select sysdate from al') #使用cursor進行各種操作
x.fetchone()
c.close() #關閉cursor
conn.close() #關閉連接
3. windows下怎麼用python連接hive資料庫
由於版本的不同,Python 連接 Hive 的方式也就不一樣。
在網上搜索關鍵字 python hive 的時候可以找到一些解決方案。大部分是這樣的,首先把hive 根目錄下的$HIVE_HOME/lib/py拷貝到 python 的庫中,也就是 site-package 中,或者乾脆把新寫的 python 代碼和拷貝的 py 庫放在同一個目錄下,然後用這個目錄下提供的 thrift 介面調用。示例也是非常簡單的。類似這樣:
import sys
from hive_service import ThriftHive
from hive_service.ttypes import HiveServerException
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
def hiveExe(sql):
try:
transport = TSocket.TSocket('127.0.0.1', 10000)
transport = TTransport.TBufferedTransport(transport)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = ThriftHive.Client(protocol)
transport.open()
client.execute(sql)
print "The return value is : "
print client.fetchAll()
print "............"
transport.close()
except Thrift.TException, tx:
print '%s' % (tx.message)
if __name__ == '__main__':
hiveExe("show tables")171819202122232425262728
或者是這樣的:
#!/usr/bin/env python
import sys
from hive import ThriftHive
from hive.ttypes import HiveServerException
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
try:
transport = TSocket.TSocket('14.18.154.188', 10000)
transport = TTransport.TBufferedTransport(transport)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = ThriftHive.Client(protocol)
transport.open()
client.execute("CREATE TABLE r(a STRING, b INT, c DOUBLE)")
client.execute("LOAD TABLE LOCAL INPATH '/path' INTO TABLE r")
client.execute("SELECT * FROM test1")
while (1):
row = client.fetchOne()
if (row == None):
break
print rowve
client.execute("SELECT * FROM test1")
print client.fetchAll()
transport.close()
except Thrift.TException, tx:
print '%s' % (tx.message)
但是都解決不了問題,從 netstat 中查看可以發現 TCP 連接確實是建立了,但是不執行 hive 指令。也許就是版本的問題。
還是那句話,看各種中文博客不如看官方文檔。
項目中使用的 hive 版本是0.13,此時此刻官網的最新版本都到了1.2.1了。中間間隔了1.2.0、1.1.0、1.0.0、0.14.0。但是還是參考一下官網的方法試試吧。
首先看官網的 setting up hiveserver2
可以看到啟動 hiveserver2 可以配置最大最小線程數,綁定的 IP,綁定的埠,還可以設置認證方式。(之前一直不成功正式因為這個連接方式)然後還給了 python 示例代碼。
import pyhs2
with pyhs2.connect(host='localhost',
port=10000,
authMechanism="PLAIN",
user='root',
password='test',
database='default') as conn:
with conn.cursor() as cur:
#Show databases
print cur.getDatabases()
#Execute query
cur.execute("select * from table")
#Return column info from query
print cur.getSchema()
#Fetch table results
for i in cur.fetch():
print
在拿到這個代碼的時候,自以為是的把認證信息給去掉了。然後運行發現跟之前博客里介紹的方法結果一樣,建立了 TCP 連接,但是就是不執行,也不報錯。這是幾個意思?然後無意中嘗試了一下原封不動的使用上面的代碼。結果可以用。唉。。。
首先聲明一下,hive-site.xml中默認關於 hiveserver2的配置我一個都沒有修改,一直是默認配置啟動 hiveserver2。沒想到的是默認配置是有認證機制的。
然後再寫一點,在安裝 pyhs2的時候還是遇到了點問題,其實還是要看官方文檔的,我只是沒看官方文檔直接用 pip安裝導致了這個問題。安裝 pyhs2需要確定已經安裝了幾個依賴包。直接看在 github 上的 wiki 吧。哪個沒安裝就補上哪一個就好了。
4. python連接MySQL資料庫問題 cursor( ) 、execute()和fetc
MySQLdb.connect是python 連接MySQL資料庫的方法,在Python中 import MySQLdb即可使用,至於connect中的參數很簡單:x0dx0ahost:MySQL伺服器名x0dx0auser:資料庫使用者x0dx0apassword:用戶登錄密碼x0dx0adb:操作的資料庫名x0dx0acharset:使用的字元集(一般是gb2312)x0dx0acursor = db.cursor() 其實就是用來獲得python執行Mysql命令的方法,也就是x0dx0a我們所說的操作游標x0dx0a下面cursor.execute則是真正執行MySQL語句,即查詢TABLE_PARAMS表的數據。x0dx0a至於fetchall()則是接收全部的返回結果行 row就是在python中定義的一個變數,用來接收返回結果行的每行數據。同樣後面的r也是一個變數,用來接收row中的每個字元,如果寫成C的形式就更好理解了x0dx0afor(string row = '' row<= cursor.fetchall(): row++)x0dx0a for(char r = '' r<= row; r++)x0dx0aprintf("%c", r);x0dx0a大致就是這么個意思!
5. 怎麼用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 服務端發出響應包,這個包里記錄了登錄是否成功,如果沒有成功也會給出錯誤信息。
6. python怎麼連接mysql資料庫
你可以訪問Python資料庫介面及API查看詳細的支持資料庫列表。不同的資料庫你需要下載不同的DB API模塊,例如你需要訪問Oracle資料庫和Mysql數據,你需要下載Oracle和MySQL資料庫模塊。
DB-API 是一個規范. 它定義了一系列必須的對象和資料庫存取方式, 以便為各種各樣的底層資料庫系統和多種多樣的資料庫介面程序提供一致的訪問介面 。
Python的DB-API,為大多數的資料庫實現了介面,使用它連接各資料庫後,就可以用相同的方式操作各資料庫。
Python DB-API使用流程:
引入 API 模塊。
獲取與資料庫的連接。
執行SQL語句和存儲過程。
關閉資料庫連接。
什麼是MySQLdb?
MySQLdb 是用於Python鏈接Mysql資料庫的介面,它實現了 Python 資料庫 API 規范 V2.0,基於 MySQL C API 上建立的。
如何安裝MySQLdb?
為了用DB-API編寫MySQL腳本,必須確保已經安裝了MySQL。復制以下代碼,並執行:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
7. 如何用python連接 tableau 資料庫,然後讀取數據
選擇「數據」>「連接到數據」或按鍵盤上的 Ctrl + D。也可以在開始頁面上選擇「連接到數據」選項。
2. 在「連接到數據」頁面上,選擇要連接的數據類型。也可以選擇保存的數據連接(TDS 文件)打開一個 Tableau Server 數據源。
3. 連接到數據的另一種方式是從工作簿導入。工作簿可以包含與不同數據源的多個連接。若要從工作簿導入連接,請在「連接到數據」對話框中單擊「選擇保存的連接」選項卡底部的「從工作簿導入」按鈕。
顯示連接信息
可以顯示有關連接的信息,方法是在「數據」菜單中選擇數據源,然後選擇「屬性」。下面顯示了示例數據源的屬性。
連接到自定義 SQL 查詢
對於大多數關系數據源,可以連接到特定查詢,而非整個數據源。
在連接對話框中選擇「自定義 SQL」。
在文本框中鍵入或粘貼查詢。單擊文本框右上角的「瀏覽」按鈕 會打開更大的編輯窗口,可進行更復雜的查詢或添加參數。
注意:完成連接後,Tableau 的數據窗口只顯示相關欄位。
如果 SQL 查詢引用重復列,則在嘗試使用 Tableau 中的列之一時,可能會出現錯誤。即使查詢有效,也會發生這種情況。例如,考慮以下查詢:
SELECT * from authors, titleauthor where authors.au_id = titleauthor.au_id 該查詢有效,但因為 au_id 欄位在「authors」表和「titleauthor」表中都存在,因此該欄位不明確。Tableau 將連接到查詢,但只要嘗試使用 au_id 欄位,就會出現錯誤。原因是 Tableau 不知道要引用哪個表。
編輯連接
在「數據」菜單中選擇數據源,然後選擇「編輯連接」。
8. 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()
9. 還有python和jmeter介面怎麼連資料庫
連接資料庫步驟:
1. 下載jdbc 的驅動 mysql-connector-java-5.1.41-bin.jar,並將該驅動放到路徑:
D:\apache-jmeter-3.0\lib\
2. 打開Jmeter 工具,添加線程組 .
3. 在Jmeter工具中,添加JDBC Connection Configuration ,
4.添加JDBC Request ,
5. 添加 查看結果樹,
6.配置 JDBC Connection Configuration ,
7.配置JDBC Request 處,添加需要使用的sql語句,
8.將已經下載的jdbc驅動載入到Jmeter工具中,這樣就使得mysql與Jmeter連接起來。
選擇 測試計劃 — 進入頁面,點擊 瀏覽按鈕,
9.點擊 綠色的 運行按鈕,執行結果,
10. 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='開通'")