日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mamp python mysql_MAMP中Python安装MySQLdb

發(fā)布時間:2024/3/24 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mamp python mysql_MAMP中Python安装MySQLdb 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Python 標準數(shù)據(jù)庫接口為 Python DB-API,Python DB-API為開發(fā)人員提供了數(shù)據(jù)庫應用編程接口。

MySQLdb 是用于Python鏈接Mysql數(shù)據(jù)庫的接口,它實現(xiàn)了 Python 數(shù)據(jù)庫 API 規(guī)范 V2.0,基于 MySQL C API 上建立的。

一、如何安裝MySQLdb?

為了用DB-API編寫MySQL腳本,必須確保已經(jīng)安裝了MySQL。復制以下代碼,并執(zhí)行:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import MySQLdb

如果執(zhí)行后的輸出結果如下所示,意味著你沒有安裝 MySQLdb 模塊:

Traceback (most recent call last):

File "test.py", line 3, in

import MySQLdb

ImportError: No module named MySQLdb

如果您選擇二進制文件發(fā)行版本的話,安裝過程基本安裝提示即可完成。如果從源代碼進行安裝的話,則需要切換到MySQLdb發(fā)行版本的頂級目錄,并鍵入下列命令:

$ gunzip MySQL-python-1.2.2.tar.gz

$ tar -xvf MySQL-python-1.2.2.tar

$ cd MySQL-python-1.2.2

$ python setup.py build

$ python setup.py install

注意:請確保您有root權限來安裝上述模塊。

運行錯誤信息:

_mysql.c:44:10: fatal error: ‘my_config.h‘ file not found

原因是因為MySQL不是單獨安裝的,是安裝的一個MAMP集成開發(fā)環(huán)境包,在MAMP中PHP和MySQL的頭文件都是沒有的,所以會報出這個錯誤。我們有兩種解決方式,一種是重新編譯MySQL,一種是單獨安裝mysq-connector-c,因為開發(fā)環(huán)境包已經(jīng)自帶了MySQL了,我們就不再編譯安裝了,單獨安裝就ok。

執(zhí)行以下語句:

brew install mysql-connector-c

二、數(shù)據(jù)庫連接

出現(xiàn)以下錯誤提示:

sh: mysql_config: command not found

Traceback (most recent call last):

File "setup.py", line 17, in

metadata, options = get_config()

File "/Users/macbook/Downloads/MySQL-python-1.2.5/setup_posix.py", line 43, in get_config

libs = mysql_config("libs_r")

File "/Users/macbook/Downloads/MySQL-python-1.2.5/setup_posix.py", line 25, in mysql_config

raise EnvironmentError("%s not found" % (mysql_config.path,))

EnvironmentError: mysql_config not found

修改setup_posix.py文件,代碼如下

mysql_config.path = "/Applications/MAMP/Library/bin/mysql_config"

如果不知道其目錄,可以使用一下命令查找

sudo find / -name mysql_config

完成該步驟之后可能仍然會出錯:

Traceback (most recent call last):

File "./hello.py", line 3, in

import MySQLdb

File "build/bdist.macosx-10.10-intel/egg/MySQLdb/__init__.py", line 19, in

File "build/bdist.macosx-10.10-intel/egg/_mysql.py", line 7, in

File "build/bdist.macosx-10.10-intel/egg/_mysql.py", line 6, in __bootstrap__

ImportError: dlopen(/Users/macbook/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.10-intel.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib

Referenced from: /Users/macbook/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.10-intel.egg-tmp/_mysql.so

Reason: image not found

此時,需要執(zhí)行命令

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

注意:該軟連接的實際目錄部分以自己機器上的目錄為準

另外:MAMP出現(xiàn)如下錯誤提示:

ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘

找不到socket文件,查找本機文件所在位置

sudo find / -name mysql.sock

將文件地址作為參數(shù)傳遞到數(shù)據(jù)庫連接語句

con=MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘root‘,db=‘StudentDB‘,port=3306,unix_socket="/Applications/MAMP/tmp/mysql/mysql.sock",charset=‘utf8‘)

三、實例:

以下實例鏈接Mysql的StudentDB數(shù)據(jù)庫:

#!/usr/bin/python

# -*- coding: utf-8 -*-

import MySQLdb

import sys

import sys

reload(sys)

sys.setdefaultencoding(‘utf-8‘)

con=MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘root‘,db=‘StudentDB‘,port=3306,unix_socket="/Applications/MAMP/tmp/mysql/mysql.sock",charset=‘utf8‘)

#獲取 mysql 的鏈接對象

with con:

#獲取執(zhí)行查詢的對象

cur = con.cursor()

#執(zhí)行那個查詢,這里用的是 select 語句

cur.execute("SELECT * FROM Student")

#使用 cur.rowcount 獲取結果集的條數(shù)

numrows = int(cur.rowcount)

#循環(huán) numrows 次,每次取出一行數(shù)據(jù)

for i in range(numrows):

#每次取出一行,放到 row 中,這是一個元組(id,name)

row = cur.fetchone()

#直接輸出兩個元素

print row[0], row[1]

總結

以上是生活随笔為你收集整理的mamp python mysql_MAMP中Python安装MySQLdb的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。