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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

在python中配置MySQL数据库

發(fā)布時間:2025/5/22 数据库 114 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在python中配置MySQL数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MySQL數(shù)據(jù)庫(1)

盡管用文件形式將數(shù)據(jù)保存到磁盤,已經(jīng)是一種不錯的方式。但是,人們還是發(fā)明了更具有格式化特點,并且寫入和讀取更快速便捷的東西——數(shù)據(jù)庫(如果閱讀港臺的資料,它們稱之為“資料庫”)。維基百科對數(shù)據(jù)庫有比較詳細的說明:

數(shù)據(jù)庫指的是以一定方式儲存在一起、能為多個用戶共享、具有盡可能小的冗余度、與應(yīng)用程序彼此獨立的數(shù)據(jù)集合。

到目前為止,地球上有三種類型的數(shù)據(jù):

  • 關(guān)系型數(shù)據(jù)庫:MySQL、Microsoft Access、SQL Server、Oracle、...
  • 非關(guān)系型數(shù)據(jù)庫:MongoDB、BigTable(Google)、...
  • 鍵值數(shù)據(jù)庫:Apache Cassandra(Facebook)、LevelDB(Google) ...

在本教程中,我們主要介紹常用的開源的數(shù)據(jù)庫,其中MySQL是典型代表。

概況

MySQL是一個使用非常廣泛的數(shù)據(jù)庫,很多網(wǎng)站都是用它。關(guān)于這個數(shù)據(jù)庫有很多傳說。例如維基百科上這么說:

MySQL(官方發(fā)音為英語發(fā)音:/ma? ??skju???l/ "My S-Q-L",[1],但也經(jīng)常讀作英語發(fā)音:/ma? ?si?kw?l/ "My Sequel")原本是一個開放源代碼的關(guān)系數(shù)據(jù)庫管理系統(tǒng),原開發(fā)者為瑞典的MySQL AB公司,該公司于2008年被升陽微系統(tǒng)(Sun Microsystems)收購。2009年,甲骨文公司(Oracle)收購升陽微系統(tǒng)公司,MySQL成為Oracle旗下產(chǎn)品。

MySQL在過去由于性能高、成本低、可靠性好,已經(jīng)成為最流行的開源數(shù)據(jù)庫,因此被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。隨著MySQL的不斷成熟,它也逐漸用于更多大規(guī)模網(wǎng)站和應(yīng)用,比如維基百科、Google和Facebook等網(wǎng)站。非常流行的開源軟件組合LAMP中的“M”指的就是MySQL。

但被甲骨文公司收購后,Oracle大幅調(diào)漲MySQL商業(yè)版的售價,且甲骨文公司不再支持另一個自由軟件項目OpenSolaris的發(fā)展,因此導(dǎo)致自由軟件社區(qū)們對于Oracle是否還會持續(xù)支持MySQL社區(qū)版(MySQL之中唯一的免費版本)有所隱憂,因此原先一些使用MySQL的開源軟件逐漸轉(zhuǎn)向其它的數(shù)據(jù)庫。例如維基百科已于2013年正式宣布將從MySQL遷移到MariaDB數(shù)據(jù)庫。

不管怎么著,MySQL依然是一個不錯的數(shù)據(jù)庫選擇,足夠支持讀者完成一個相當(dāng)不小的網(wǎng)站。

安裝

你的電腦或許不會天生就有MySQL(是不是有的操作系統(tǒng),在安裝的時候就內(nèi)置了呢?的確有,所以特別推薦Linux的某發(fā)行版),它本質(zhì)上也是一個程序,若有必要,須安裝。

我用ubuntu操作系統(tǒng)演示,因為我相信讀者將來在真正的工程項目中,多數(shù)情況下是要操作Linux系統(tǒng)的服務(wù)器,并且,我酷愛用ubuntu。還有,本教程的目標是from beginner to master,不管是不是真的master,總要裝得像,Linux能夠給你撐門面。

第一步,在shell端運行如下命令:

sudo apt-get install mysql-server

運行完畢,就安裝好了這個數(shù)據(jù)庫。是不是很簡單呢?當(dāng)然,當(dāng)然,還要進行配置。

第二步,配置MySQL

安裝之后,運行:

service mysqld start

啟動mysql數(shù)據(jù)庫。然后進行下面的操作,對其進行配置。

默認的MySQL安裝之后根用戶是沒有密碼的,注意,這里有一個名詞“根用戶”,其用戶名是:root。運行:

$mysql -u root

在這里之所以用-u root是因為我現(xiàn)在是一般用戶(firehare),如果不加-u root的話,mysql會以為是firehare在登錄。

進入mysql之后,會看到>符號開頭,這就是mysql的命令操作界面了。

下面設(shè)置Mysql中的root用戶密碼了,否則,Mysql服務(wù)無安全可言了。

mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";

用123456做為root用戶的密碼,應(yīng)該是非常愚蠢的,如果在真正的項目中,最好別這樣做,要用大小寫字母與數(shù)字混合的密碼,且不少于8位。

以后如果在登錄數(shù)據(jù)庫,就可以用剛才設(shè)置的密碼了。

運行

安裝之后,就要運行它,并操作這個數(shù)據(jù)庫。

$ mysql -u root -p Enter password:

輸入數(shù)據(jù)庫的密碼,之后出現(xiàn):

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 373 Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

看到這個界面內(nèi)容,就說明你已經(jīng)進入到數(shù)據(jù)里面了。接下來就可以對這個數(shù)據(jù)進行操作。例如:

mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | carstore | | cutvideo | | itdiffer | | mysql | | performance_schema | | test | +--------------------+

用這個命令,就列出了當(dāng)前已經(jīng)有的數(shù)據(jù)庫。

對數(shù)據(jù)庫的操作,除了用命令之外,還可以使用一些可視化工具。比如phpmyadmin就是不錯的。

更多數(shù)據(jù)庫操作的知識,這里就不介紹了,讀者可以參考有關(guān)書籍。

MySQL數(shù)據(jù)庫已經(jīng)安裝好,但是Python還不能操作它,還要繼續(xù)安裝python操作數(shù)據(jù)庫的模塊——python-MySQLdb

安裝python-MySQLdb

python-MySQLdb是一個接口程序,python通過它對mysql數(shù)據(jù)實現(xiàn)各種操作。

在編程中,會遇到很多類似的接口程序,通過接口程序?qū)α硗庖粋€對象進行操作。接口程序就好比鑰匙,如果要開鎖,人直接用手指去捅,肯定是不行的,那么必須借助工具,插入到鎖孔中,把鎖打開,之后,門開了,就可以操作門里面的東西了。那么打開鎖的工具就是接口程序。誰都知道,用對應(yīng)的鑰匙開鎖是最好的,如果用別的工具(比如錘子),或許不便利(其實還分人,也就是人開鎖的水平,如果是江洋大盜或者小毛賊什么的,擅長開鎖,用別的工具也便利了),也就是接口程序不同,編碼水平不同,都是考慮因素。

啰嗦這么多,一言蔽之,python-MySQLdb就是打開MySQL數(shù)據(jù)庫的鑰匙。

如果要源碼安裝,可以這里下載python-mysqldb:https://pypi.python.org/pypi/MySQL-python/

下載之后就可以安裝了。

ubuntu下可以這么做:

sudo apt-get install build-essential python-dev libmysqlclient-dev sudo apt-get install python-MySQLdb

也可以用pip來安裝:

pip install mysql-python

安裝之后,在python交互模式下:

>>> import MySQLdb

如果不報錯,恭喜你,已經(jīng)安裝好了。如果報錯,恭喜你,可以借著錯誤信息提高自己的計算機水平了,請求助于google大神。

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

要先找到老婆,才能談如何養(yǎng)育自己的孩子,同理連接數(shù)據(jù)庫之先要建立數(shù)據(jù)庫。

$ mysql -u root -p Enter password:

進入到數(shù)據(jù)庫操作界面:

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 373 Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

輸入如下命令,建立一個數(shù)據(jù)庫:

mysql> create database qiwsirtest character set utf8; Query OK, 1 row affected (0.00 sec)

注意上面的指令,如果僅僅輸入:create database qiwsirtest,也可以,但是,我在后面增加了character set utf8,意思是所建立的數(shù)據(jù)庫qiwsirtest,編碼是utf-8的,這樣存入漢字就不是亂碼了。

看到那一行提示:Query OK, 1 row affected (0.00 sec),就說明這個數(shù)據(jù)庫已經(jīng)建立好了,名字叫做:qiwsirtest

數(shù)據(jù)庫建立之后,就可以用python通過已經(jīng)安裝的mysqldb來連接這個名字叫做qiwsirtest的庫了。

>>> import MySQLdb >>> conn = MySQLdb.connect(host="localhost",user="root",passwd="123123",db="qiwsirtest",port=3306,charset="utf8")

逐個解釋上述命令的含義:

  • host:等號的后面應(yīng)該填寫mysql數(shù)據(jù)庫的地址,因為就數(shù)據(jù)庫就在本機上(也稱作本地),所以使用localhost,注意引號。如果在其它的服務(wù)器上,這里應(yīng)該填寫ip地址。一般中小型的網(wǎng)站,數(shù)據(jù)庫和程序都是在同一臺服務(wù)器(計算機)上,就使用localhost了。
  • user:登錄數(shù)據(jù)庫的用戶名,這里一般填寫"root",還是要注意引號。當(dāng)然,如果讀者命名了別的用戶名,數(shù)據(jù)庫管理者提供了專有用戶名,就更改為相應(yīng)用戶。但是,不同用戶的權(quán)限可能不同,所以,在程序中,如果要操作數(shù)據(jù)庫,還要注意所擁有的權(quán)限。在這里用root,就放心了,什么權(quán)限都有啦。不過,這樣做,在大型系統(tǒng)中是應(yīng)該避免的。
  • passwd:上述user賬戶對應(yīng)的登錄mysql的密碼。我在上面的例子中用的密碼是"123123"。不要忘記引號。
  • db:就是剛剛通create命令建立的數(shù)據(jù)庫,我建立的數(shù)據(jù)庫名字是"qiwsirtest",還是要注意引號。看官如果建立的數(shù)據(jù)庫名字不是這個,就寫自己所建數(shù)據(jù)庫名字。
  • port:一般情況,mysql的默認端口是3306,當(dāng)mysql被安裝到服務(wù)器之后,為了能夠允許網(wǎng)絡(luò)訪問,服務(wù)器(計算機)要提供一個訪問端口給它。
  • charset:這個設(shè)置,在很多教程中都不寫,結(jié)果在真正進行數(shù)據(jù)存儲的時候,發(fā)現(xiàn)有亂碼。這里我將qiwsirtest這個數(shù)據(jù)庫的編碼設(shè)置為utf-8格式,這樣就允許存入漢字而無亂碼了。注意,在mysql設(shè)置中,utf-8寫成utf8,沒有中間的橫線。但是在python文件開頭和其它地方設(shè)置編碼格式的時候,要寫成utf-8。切記!

注:connect中的host、user、passwd等可以不寫,只有在寫的時候按照host、user、passwd、db(可以不寫)、port順序?qū)懢涂梢?#xff0c;端口號port=3306還是不要省略的為好,如果沒有db在port前面,直接寫3306會報錯.

?

已經(jīng)完成了數(shù)據(jù)庫的連接。

?

總結(jié)

以上是生活随笔為你收集整理的在python中配置MySQL数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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