本人用的是ubuntu系統下虛擬環境的python3,故要先進到虛擬環境再下載pymysql。先用workon查看虛擬環境叫什麼?再進入用pip下載。python
進入後輸入命令行:pip3 install pymysql,若是提示須要升級pip版本,按照其指定命令輸入便可。若是你用的是ubuntu下的python,就不須要進入虛擬環境就能夠直接pip安裝。mysql
安裝完成後,在cd到下圖的指定文件下,使用sudo打開文件輸入密碼,最後修改指定部分。sql
將bind-address的127.0.0.1改成0.0.0.0,IP地址127.0.0.1是隻有本地才能鏈接,0.0.0.0是全部的ip都能訪問。數據庫
首先導包ubuntu
import pymysql
再創建和數據庫的鏈接,配置pymysql.connect鏈接數據庫。mysql的端口號是3306.fetch
con = pymysql.connect( host = '127.0.0.1', port = 3306, user = 'wanglong', password = '12580', db = 'mydb', #數據庫名 charset = 'utf8')
再定義遊標,以後利用python操做數據庫的語句都是基於這個遊標。命令行
cur = con.cursor()
利用execute執行MySQL語句3d
a = cur.execute('show tables') print (a)
上面的結果是6,返回的表格的數目。進入數據庫執行相應語句效果以下:code
若是想輸出上圖的具體數據,就要用fetchone或fetchall來提取數據。blog
cur.execute('show tables') d = cur.fetchone() f = cur.fetchall() print (d) print (*f)#拆包
('choose',) ('col',) ('course',) ('stu',) ('stu_for',) ('test',)
能夠發現,再取出全部數據時,其第一條數據並無取出,緣由是在取出全部數據前實行了取出一條數據的命令。
我還能夠建一張新表,以下所示:
tb = ''' create table test( id int primary key auto_increment, name varchar(20) ) ''' cur.execute(tb)
須要注意的是,當咱們利用execute語句執行mysql的插入、刪除、更新時,它會自定開啓一個事務,故若是不提交這個事務而運行,底層數據不會有任何改變。提交事務有兩種方法,一種是原始的mysql語句,一種是pymysql模塊內的方法。
cur.exectue('commit')
con.commit()
最後要注意的是,在全部操做完成以後要先關閉遊標,再關閉鏈接。
cur.close() con.close()