安裝第三方連接mysqldb 的庫
yum install -y MySQL-python
apt-get install -y python-mysqldb
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
pip install wheel
pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl
python27 -m pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl
def connect_mysql(): db_config = { 'host': '192.168.48.128', 'port': 3306, 'user': 'xiang', 'passwd': '123456', 'db': 'python', 'charset': 'utf8' } cnx = MySQLdb.connect(**db_config) return cnx
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb try: conn=MySQLdb.connect(host='localhost',user='root',passwd='toor',db='mysql',port=3306) ##連接數據庫 cur=conn.cursor() ##使用cursor()方法獲取操做遊標 cur.execute('select User,Host from user') ##使用execute方法執行SQL語句 qur_result = cur.fetchall() ##使用 fetchone() 方法獲取一條數據庫 for record in qur_result: print record cur.close() #關閉操做 conn.close() ##關閉連接 except MySQLdb.Error,e: print 'Myslq Rrror Msg:',e
建立數據庫,建立表,插入數據python
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb try: db=MySQLdb.connect(host='localhost',user='root',passwd='toor',port=3306) ##連接數據庫 cur=db.cursor() ##使用cursor()方法獲取操做遊標 # 1 建立庫 cur.execute('create database if not exists test') ##建立數據 test db.select_db('test') ##切換數據庫 # 2 建立表 cur.execute(''' create table stu_info( id int(5) not null primary key auto_increment, name char(10) not null, phone int(12) not null, class char(20) ); ''') # 3 插入單條數據,.rollback()插入錯誤回滾 try: info = ('abc',123456,'linux') sql = 'insert into stu_info values(null,%s,%s,%s)',info cur.execute(sql) ##執行sql語句插入數據 db.commit() ##提交,提交後沒法回滾 except: db.rollback() ##發生錯誤時回滾 # 4 插入多條數據,.executemany()重複執行帶參數的單條命令 try: values_list = [] for i in range(10): values_list.append(('abc_%s' i,'12345670%s' i,'python')) cur.executemany('insert into stu_info values(null.%s,%s,%s)',valuse_list) db.commit() except: db.rollback() # 5 .fetchone() 查詢返回一條結果 cur.execute('select * from stu_info') ##查詢插入後的表 qur_result = cur.fetchone() ##使用 fetchone() 方法獲取一條數據庫 for record in qur_result: ##循環打印出獲取到的每條數據 print record # 6 .fetchall() 返回所有結果 cur.execute('select * from stu_info') ##查詢插入後的表 qur_result = cur.fetchall() ##使用 fetchall() 所有的返回結果行 print qur_result # 7 .scroll() 移動指針到某一行,查詢行後面的結果 cur.execute('select * from stu_info') cur.scroll(14,'python') print cur.fetchall() cur.close() ##關閉操做 db.close() ##關閉連接 except MySQLdb.Error,e: print 'Myslq Rrror Msg:',e
commit() 提交
rollback() 回滾mysql
cursor: 用來執行命令的方法linux
.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條.sql