python連接mysql使用MYSQLdb,首先要去下載對應版本的MYSQLdb,分享一個我自己下的
http://blog.csdn.net/mhtian2015/article/details/51727047
Ⅱ 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 服務端發出響應包,這個包里記錄了登錄是否成功,如果沒有成功也會給出錯誤信息。
Ⅳ python3.4怎麼連接mysql pymysql連接mysql資料庫
1、python安裝目錄設定為d:/python34
2、pymysql安裝方法為:解壓下載的文件,在cmd中運行: python setup.py install。
檢驗安裝安裝是否成功的方法:import pymysql 。 如果不報錯 說明安裝成功。
3、mysql安裝目錄為D:/phpStudy/MySQL。為避免更多配置問題,可在啟動phpstudy後,將其設為系統服務
4、基本操作:
(1)導入pymysql: import pymysql
(2)連接資料庫:
conn=pymysql.connect(host='localhost',user='root',passwd='root',db='ere',charset='utf8')
務必注意各等號前面的內容!charset參數可避免中文亂碼
(3)獲取操作游標:cur=conn.cursor()
(4)執行sql語句,插入記錄:sta=cur.execute("insert 語句") 執行成功後sta值為1。更新、刪除語句與此類似。
(5)執行sql語句,查詢記錄:cur.execute("select語句") 執行成功後cur變數中保存了查詢結果記錄集,然後再用循環列印結果:
for each in cur:
print(each[1].decode('utf-8')) # each[1] 表示當前游標所在行的的第2列值,如果是中文則需要處理編碼
Ⅳ python怎樣連接訪問mysql資料庫
具體步驟: 序號 描述 1 去github上下載pymysql的安裝包pymysql 2 解壓到某個盤符下 3 打開cmd窗口(win環境下),進入pymysql的根目錄下執行命令,python setup.py install 4 在程序里,導入pymysql 5 開始連接資料庫 資料庫操作的API文檔連接:
Ⅵ python能遠程連接MySQL資料庫嗎
使用Python連接資料庫首先需要安裝Python的資料庫驅動。
我的本地只裝了Python,並沒有裝MySQL,當我使用命令:
sudo pip install mysql-python
安裝驅動(也就是MySQLdb模塊)的時候出現如下錯誤:
EnvironmentError: mysql_config not found
查資料 知道是因為沒有安裝下面兩開發包:
libmysqld-dev
libmysqlclient-dev
安裝:
sudo apt install libmysqld-dev
事實上用apt安裝第一個之後,第二個也已經存在了。再次嘗試安裝mysql-python就成功了。
現在嘗試遠程連接數據:
import MySQLdb
conn = MySQLdb.connect(host = '×××××××××××××', # 遠程主機的ip地址,
user = 'root', # MySQL用戶名
db = 'alimusic', # database名
passwd = '××××××', # 資料庫密碼
port = 3306, #資料庫監聽埠,默認3306
charset = "utf8") #指定utf8編碼的連接
cursor = conn.cursor() # 創建一個游標,然後通過游標執行sql語句
cursor.excute("select * from table1 limit 10")
values = cursor.fetchall() # 取出cursor得到的數據
cursor.close(); conn.close() #最後記得關閉游標和連接,防止數據泄露
如果excute()執行的是插入數據的代碼,那麼在執行完成之後需要調用
cursor.commit()
才能把結果寫入資料庫
中文亂碼
編碼錯誤在任何時候都必須重視的問題,由於連接資料庫涉及到多個層次,比如資料庫伺服器編碼,創建的database編碼,table的編碼,連接(也就是上面的conn)編碼。如果出現亂碼,需要檢查上述的每一個環節。這里記錄幾個查詢各種編碼的方式:
查詢資料庫的各種編碼:
show variables like "%char%";
查詢某個資料庫的默認編碼
show create database databasename;
查詢某張表的默認編碼
show create table tablename;
最好在create資料庫或者表的時候在創建語句後面指定具體的編碼方式:default character set utf8