python訪問mysql

  • 2020 年 1 月 14 日
  • 筆記

Python訪問mysql需要第三方模組MySQLdb

1.安裝MySQLdb

首先先把mysql的bin目錄加到你的PATH中

下載來的MySQLdb 源碼包解包後

進入解壓出來的目錄

編輯一下site.cfg文件

[quincy@Quincy MySQL-python-1.2.3]$ vim site.cfg

找到#mysql_config = /usr/local/bin/mysql_config

將#去掉,後面寫上你的mysql_config的目錄

比如我的 mysql_config = /app/mysql-5.6.13/bin/mysql_config

並把第七行的

threadsafe = True改為threadsafe = False

然後:wq

執行

[quincy@Quincy MySQL-python-1.2.3]$ python setup.py build

沒問題的話就執行

[quincy@Quincy MySQL-python-1.2.3]$ sudo python setup.py install 安裝好了就測試一下

>>> import MySQLdb 這回又出錯了

ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

這要在/usr/lib下建立一個到mysql的lib目錄下的符號鏈接

ln -s mysql安裝目錄/lib/libmysqlclient.so /usr/lib/libmysqlclient.so.18

比如我的是

[quincy@Quincy ~]$ sudo ln -s /app/mysql-5.6.13/lib/libmysqlclient.so /usr/lib/libmysqlclient.so.18

許可權不夠記得sudo一下

先在import就沒問題了

2.使用MySQLdb模組

2.1建立連接

conn=MySQLdb.connect(host=主機地址,user=用戶名,passwd=密碼,db=資料庫,charset=語言編碼)

如果是中文charset不寫會出現亂碼

2.2獲得游標

cursor=conn.cursor()

操作必須要有游標

2.3查詢

cursor.execute("select語句")

cursor.fetchone()獲得一行記錄

cursor.fetchmany(n)獲得n條記錄

cursor.fetchall()獲得全部記錄

中文字元:如果直接用 print cursor.fetchxx()會顯示unicode元組

遍歷的話就會輸出中文字元了

2.4插入

cursor.execute(「insert into 表名 values(%s)」,待插入的元組) 此時只能插入一條記錄

插入多條記錄

cursor.executemany("insert into 表名 values (%s,%s)",要插入的記錄的元組列表)

2.5刪除

cursor.execute("delete from語句")

2.6更改

cursor.execute("update語句")

2.7釋放連接

用完要記得釋放連接

cursor.close()

conn.close()