yum -y install mysql-dev
wget http://downloads.sourceforge.net/project/mysql-python/mysql-python-test/1.2.4b4/MySQL-python-1.2.4b4.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmysql-python%2F&ts=1364895531&use_mirror=nchc tar zxvf MySQL-python-1.2.4b4.tar.gz cd MySQL-python-1.2.4b4 python setup.py build python setup.py install
urllib2.URLError: <urlopen error [Errno 110] Connection timed out>
像報了這樣的錯,多試幾次,網絡請求超時了
如果 報EnvironmentError: mysql_config not found
版本是2.7.3
此時執行 find / -name mysql_config 在/usr/bin/下發現了這個文件
然后修改MySQL-python-1.2.3目錄下的site.cfg文件
去掉mysql_config=XXX這行的注釋,並改成mysql_config=/usr/bin/mysql_config(以mysql_config文件所在機器上的目錄為准)
在Python代碼
conn = MySQLdb.Connect(host='localhost', user='root', passwd='root', db='python') 中加一個屬性:
改為:
conn = MySQLdb.Connect(host='localhost', user='root', passwd='root', db='python',charset='utf8')
charset是要跟你數據庫的編碼一樣,如果是數據庫是gb2312 ,則寫charset='gb2312'。
下面貼一下常用的函數:
然后,這個連接對象也提供了對事務操作的支持,標准的方法
commit() 提交
rollback() 回滾
cursor用來執行命令的方法:
callproc(self, procname, args):用來執行存儲過程,接收的參數為存儲過程名和參數列表,返回值為受影響的行數
execute(self, query, args):執行單條sql語句,接收的參數為sql語句本身和使用的參數列表,返回值為受影響的行數
executemany(self, query, args):執行單挑sql語句,但是重復執行參數列表里的參數,返回值為受影響的行數
nextset(self):移動到下一個結果集
cursor用來接收返回值的方法:
fetchall(self):接收全部的返回結果行.
fetchmany(self, size=None):接收size條返回結果行.如果size的值大於返回的結果行的數量,則會返回cursor.arraysize條數據.
fetchone(self):返回一條結果行.
scroll(self, value, mode='relative'):移動指針到某一行.如果mode='relative',則表示從當前所在行移動value條,如果 mode='absolute',則表示從結果集的第一行移動value條.
import MySQLdb try: conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='admin',db='mysql',port=3306) cur=conn.cursor() #cur.execute('select * from user') cur.execute('select version()') data = cur.fetchone() print "Databases version: %s " % data cur.close() conn.close() except MySQLdb.Error,e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])
import MySQLdb as mdb import sys conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306) with conn: cur = conn.cursor() cur.execute("Create TABLE IF NOT EXISTS \ Writers(Id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(25))") cur.execute("INSERT INTO Writers(Name) VALUES('Jack Luo')") cur.execute("INSERT INTO Writers(Name) VALUES('Kity Alice')") cur.execute("INSERT INTO Writers(Name) VALUES('Alex ok')")
import MySQLdb as mdb import sys conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306) with conn: cur = conn.cursor() cur.execute("SELECT * from Writers") rows = cur.fetchall() for row in rows: print row
import MySQLdb as mdb import sys conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306) with conn: cur = conn.cursor() cur.execute("SELECT * from Writers") numrows = int(cur.rowcount) for i in range(numrows): row = cur.fetchone() print row[0],row[1]
import MySQLdb as mdb import sys conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306) with conn: cur = conn.cursor(mdb.cursors.DictCursor) cur.execute("SELECT * FROM Writers") rows = cur.fetchall() for row in rows: print "%s %s" % (row["Id"],row["NAME"])
import MySQLdb as mdb import sys conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306) with conn: cur = conn.cursor() cur.execute("SELECT * from Writers") rows = cur.fetchall() desc = cur.description print 'cur.description:',desc print "%s %3s" % (desc[0][0],desc[1][0]) for row in rows: print "%2s %3s" % row
import MySQLdb as mdb import sys conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306) with conn: cur = conn.cursor() cur.execute("UPDATE Writers SET NAME=%s WHERE Id = %s",("Guy de Maupasant","4")) print "Number of rows updated: %d" % cur.rowcount
import MySQLdb as mdb import sys try: fin = open("logo.png") img = fin.read() fin.close() except IOError,e: print "Error %d: %s" % (e.args[0],e.args[1]) sys.exit(1) try: conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306) cursor = conn.cursor() cursor.execute("INSERT INTO Images SET Data='%s'" % mdb.escape_string(img)) conn.commit() cursor.close() conn.close() except mdb.Error,e: print "Error %d:%s" % (e.args[0],e.args[1]) sys.exit(1)
import MySQLdb as mdb import sys try: conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306) cursor = conn.cursor() cursor.execute("SELECT Data FROM Images LIMIT 1") fout = open('logo2.png','wb') fout.write(cursor.fetchone()[0]) fout.close() cursor.close() conn.close() except IOError,e: print "Error %d: %s" %(e.args[0],e.args[1]) sys.exit(1)
import MySQLdb as mdb import sys try: conn = mdb.connect(host='127.0.0.1',user='root',passwd='admin',db='game',port=3306) cursor = conn.cursor() cursor.execte("UPDATE Writers SET Name = %s WHERE Id = %s",("JACK LUO","1")) cursor.execte("UPDATE Writers Set Name = %s where Id = %s ",("Alex LI",'2')) cursor.execte("UPDATE Writers Set Name = %s where Id = %s",("Leonid Leonov",'3')) conn.commit() cursor.close() conn.close() except mdb.Error,e: conn.rollback() print "Error %d: %s" % (e.args[0],e.args[1])