python遠程連接mysql服務器

使用python連接至遠程的mysql服務器


python連接mysql使用MYSQLdb,首先要去下載對應版本的MYSQLdb,分享一個我自己下的

鏈接: http://pan.baidu.com/s/1o8OXU58 密碼: 27jv

下載並安裝後

第一步:

import MYSQLdb  看是否能成功導入。

第二步:

conn=MySQLdb.connect(
    host='10.10.104.71',
    port=3306,
    user='root',
    passwd='23455',
    db='malware'
)

host後爲ip地址,若用本地mysql則填爲localhost

port 端口號,默認爲3306

user 用戶名

passwd 密碼

db 你所要用的數據了名稱

第三步:
cur=conn.cursor()

我們對數據庫的常用操作都同個這個cursor對象來進行操作

通過cur.execute()來執行語句;這裏操作不在概述。

寫個我在用的時候出現的問題:

在用python將數據插入到表中時,會遇到格式化插入如下:

cur.execute(
    "INSERT INTO person(name,age,type,time,time2,setType,appearanceCount)"
    "VALUES ('%s',%d,'%s','%s','%s','%s',%d)"%(name,age,type,time,time2,setType,appearanceCount)
)
這裏的name,type等等都是字符串類型的變量,age是int類型變量,但是再插入時若是直接  用%s,就會報錯,加上引號就沒問題.


另外操作遠程數據庫需要遠程數據庫對本地進行授權:

若沒有授權會出現以下提示Host 'xxxxxx' is not allowed to connect to this MySQL server

1,在windows下運行輸入mstsc,進行遠程登錄

2,遠程登錄後,cd到mysql的bin目錄,輸入mysql -u root -p   輸入密碼進行登錄

3,創建遠程登陸用戶並授權

grant all PRIVILEGES on test_db.* to root@'192.168.1.101'  identified by '23455';

all PRIVILEGES 表示賦予所有的權限給指定用戶,這裏也可以替換爲賦予某一具體的權限,例如select,insert,update,delete,create,drop 等,具體權限間用“,”半角逗號分隔。

test_db.* 表示上面的權限是針對於哪個表的,test_db指的是數據庫,後面的 * 表示對於所有的表,由此可以推理出:對於全部數據庫的全部表授權爲“*.*”,對於某一數據庫的全部表授權爲“數據庫名.*”,對於某一數據庫的某一表授權爲“數據庫名.表名”。

root 表示你要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的用戶。

192.168.1.101   表示允許遠程連接的 IP 地址,也就是你本地的ip地址。如果想不限制鏈接的 IP 則設置爲“%”即可。

123456 爲用戶的密碼。

4,flush privileges; 


這樣就可以操作成功了




發佈了31 篇原創文章 · 獲贊 13 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章