libmysqld_dev linux,Linux下python玩转MySQLdb
(0)目錄
Linux下python玩轉MySQLdb
一:起因
(1)Linux下安裝python的第三方模塊 ---- MySQLdb,自己走了很多彎路,在此做一下總結,希望對于像我一樣的初學者有所幫助
(2)Python中mysql數據庫連接的例子,請見Linux公社?或者?我的個人github源代碼
(3)MySQL-python 1.2.5的下載地址,同樣也是pipe python的資源網站
二:MySQLdb在Linux環境中的安裝
(1)Linux 下的安裝mysql數據庫,除了下載安裝包進行安裝外,一般的linux 倉庫中都會有mysql ,安裝命令:
Ubuntu\zyp
>>sudo apt-get install mysql-server
>>Sudo apt-get install mysql-client
>>mysql -u root -p 即可檢驗mysql服務和客戶端是否安裝和開啟
(2)MySQL-python驅動模塊安裝
下載地址:https://pypi.python.org/pypi/MySQL-python/
下載MySQL-python-1.2.5.zip 文件之后直接解壓。進入MySQL-python-1.2.5目錄:
>>python setup.py install ?----- 報錯誤
(3-1)Python安裝模塊出錯(ImportError: No module named setuptools)解決方法
安裝請看?http://blog.csdn.net/ab198604/article/details/8681851 或者 更加科學的方法
(3-2)提示報錯信息:mysql_config not found
這個是因為缺少libmysqld_dev, libmysqlclient_dev 兩個開發包引起的
下載缺少的開發包,運行兩個命令:(如果未找到包,請詳細查看更改163源)
sudo apt-get insatll libmysqld-dev
sudo apt-get install libmysqlclient-dev
(4)修改源代碼目錄下的setup_posix.py文件,將mysql_config.path 修改為mysql_config.path="/usr/bin/mysql_config"
再次在源代碼目錄中運行python setup.py build
系統再次提示報錯信息: error: command 'gcc' failed with exit status 1
需安裝兩個資源文件 :
sudo apt-get install build-essential
sudo apt-get install python-dev
(5)再次會到源文件目錄執行
sudo python setup.py build
sudo python setup.py install
至此,mysql的模塊安裝完成!
(6)檢查MySQLdb 模塊是否可以正常導入
>>> import MySQLdb
(7)示例
import MySQLdb
# establish connection with mysql
conn = MySQLdb.connect(host='localhost',user='root',passwd='root')
# get the cursor of operator
cur = conn.cursor()
# execute sql and create database name/ drop database name
cur.execute("""create database if not exists python""")
# select database use database
conn.select_db('python')
# execute and create table
cur.execute("""create table test(id int,ifo varchar(100))""")
value = [1,"inserted?"]
# insert one record
cur.execute("insert into test values(%s,%s)",value)
values=[]
for i in range(20):
values.append((i,'Hello mysqldb,I am record' + str(i)))
# insert multi records
cur.executemany("""insert into test values(%s,%s)""",values)
# close cursor
cur.close()
print "create successfully!"
示例解釋:
conn = MySQLdb.connect(host = 'localhost', user = 'root', passwd = 'root',db = 'python')
# connect() 方法用于創建數據庫的連接,可指定參數:用戶名,密碼,主機等,這只是連接到了數據庫,操作數據庫需要創建游標。
cur = conn.cursor()
# 通過獲取到的數據庫連接conn下的cursor()方法來創建游標。
cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")
# 通過游標cur 操作execute()方法,我們可以寫入純sql語句。
cur.close()
# cur.close() 關閉游標
conn.commit()
# conn.commit()方法用于提交事物,在向數據庫插入一條數據時必須要有這個方法,否則數據不會被真正的插入。
conn.close()
# Conn.close()關閉數據庫連接
三:linux操作數據庫命令
(1)創建數據庫
命令:create database
(2)創建數據庫并分配用戶
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON
數據庫名.* TO 數據庫名@localhost IDENTIFIED BY '密碼';
(3)基本操作小結
# common command --- the same to cmd consel ---- mysql -u root -p --
# mysql -- show databases; -- create database name -- use dbname --
# drop database name -- create table name (id int, name varchar(100)) --
# select * from tbname (where) / delete from tbname where -- desc tbname
# insert into tbname values(1,'zyp') / update tbname set id=99 where id=9
(4)linux操作系統上面開發程序, 只有了gcc 是不行的,還需要一個 ? build-essential軟件包
作用是提供編譯程序必須軟件包的列表信息,也就是說 編譯程序有了這個軟件包,它才知道 頭文件在哪 才知道庫函數在哪,還會下載依賴的軟件包 ? 最后才組成一個開發環境
軟件包: build-essential 安裝方法:sudo apt-get install build-essential
(5)linux發行版通常會把類庫的頭文件和相關的pkg-config分拆成一個單獨的xxx-dev(el)包。以python為例, 以下情況你是需要python-dev的
當需要自己安裝一個源外的python類庫, 而這個類庫內含需要編譯的調用python api的c/c++文件,這時需要寫的一個程序編譯需要鏈接libpythonXX.(a|so);其他正常使用python或者通過安裝源內的python類庫的不需要python-dev。
libmysqlclient-dev 是MySQL database development files;ubuntu 上 mysql-devel 庫的名字叫 libmysqld-dev,安裝方法:sudo apt-get install libmysqld-dev
(6)Linux查看mysql 安裝路徑
1)查看文件安裝路徑
由于軟件安裝的地方不止一個地方,所有先說查看文件安裝的所有路徑(地址)。
這里以mysql為例。比如說我安裝了mysql,但是不知道文件都安裝在哪些地方、放在哪些文件夾里,可以用下面的命令查看所有的文件路徑
在終端輸入:whereis mysql,回車,如果你安裝好了mysql,就會顯示文件安裝的地址
[root@localhost ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
2)查詢運行文件所在路徑(文件夾地址)
如果你只要查詢文件的運行文件所在地址,直接用下面的命令就可以了(還是以mysql為例):
which mysql 終端顯示:
[root@localhost ~]# which mysql
/usr/bin/mysql
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的libmysqld_dev linux,Linux下python玩转MySQLdb的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 指定位置输出字符串
- 下一篇: 单片机实验:节日彩灯控制器