1. 程式人生 > >Learning-MySQL【1】:資料庫初識及 MySQL 的安裝

Learning-MySQL【1】:資料庫初識及 MySQL 的安裝

一、什麼是資料

資料(Data):描述事務的符號記錄,描述事物的符號既可以是數字,也可以是文字、圖片,影象、聲音、語言等,資料由多種表現形式,它們都可以經過數字化後存入計算機

在計算機中描述一個事物,就需要抽取這一事物的典型特徵,組成一條記錄,就相當於檔案裡的一行內容,如:

1  qiuxi  male  22  安徽  軟體工程

但這樣的單純一條記錄並沒有任何意義,如果我們按逗號作為分隔,依次定義各個資料的含義:

id   name     sex    age  adderess  major       # 欄位
1    qiuxi    male    20
安徽 軟體工程 # 記錄

如果這樣表示的話,就能夠了解一個人的資訊了,讓別人一看就清楚了。這裡被定義的各個資料的含義,就稱之為欄位,這條資料資訊,稱之為一條記錄。

二、什麼是資料庫

  之前所學,資料要永久儲存,比如使用者註冊的使用者資訊,都是保存於檔案中,而檔案只能存在於某一臺機器上。如果我們不考慮從檔案中讀取資料的效率問題,並且假設我們的程式所有的元件都執行在一臺機器上,那麼用檔案存取資料,並沒有什麼問題。但需要考慮的問題是:程式的執行效率依賴於承載它的硬體,而一臺機器機器的效能總歸是有限的,受限於目前的硬體水平,垂直擴充套件是有極限的。於是我們只能通過水平擴充套件來增強我們系統的整體效能,這就需要我們將程式的各個元件分佈於多臺機器去執行。需要注意的是,雖然我們將程式的各個元件分佈到各臺機器,但各元件仍然是一個整體,言外之意,所有元件的資料還是要共享的。但每臺機器上的元件都只能操作本機的檔案,這就導致了資料必然不一致。於是我們想到了將資料與應用程式分離:把檔案存放於一臺機器,然後將多臺機器通過網路去訪問這臺機器上的檔案,即共享這臺機器上的檔案,共享則意味著競爭,會發生資料不安全,需要加鎖處理......為了遠端訪問並處理這臺共享機器上的檔案,我們必須為我們的程式額外寫一段程式碼,完成如下功能:

# 1、遠端連線
# 2、開啟檔案
# 3、讀寫(加鎖)
# 4、關閉檔案

我們寫任何程式都需要有這段程式碼,於是我們提取這段程式碼,寫成一個專門的處理軟體,這就是資料庫管理軟體的由來,但它解決的不僅僅是資料共享的問題,還有查詢效率,安全性等一系列問題,總之,能把程式設計師從資料管理中解脫出來,專注於自己的程式邏輯的編寫。

資料庫(DataBase,簡稱DB),顧名思義就是存放資料的倉庫,只不過這個倉庫是在計算機儲存裝置上。資料庫中的資料按一定的資料模型組織、描述和儲存,具有較小的冗餘度、較高的資料獨立性和易擴充套件性,並可為各種使用者共享。

三、資料庫管理系統

 

資料庫管理系統(Database  Management System,簡稱DBMS)是位於使用者與作業系統之間的一系列以統一的方式管理和維護資料庫中資料的軟體集合。它的用途是科學地組織和儲存資料、高效地獲取和維護資料,例如:MySQL、Oracle、DB2、SQL Server 等

MySQL 是目前最流行的關係型資料庫管理系統之一,由瑞典 MySQLAB(AB,在瑞典語中表示 “股份公司”,是 “aktiebolag” 的首字母縮寫)公司開發,目前屬於 Oracle 公司。在 Web 應用方面,MySQL 是最好的 RDBMS(Relational Database Manasgement System,關係資料庫管理系統)應用軟體之一。

Oracle 是美國 Oracle 公司開發的一種適用於大型、中型和微型計算機的關係資料庫管理系統。提供的以分散式資料庫為核心的一組軟體產品,是目前最流行的客戶端/伺服器(Client/Server)或 B/S 體系結構的資料庫之一。

DB2 是 IBM 公司研製出的一種關係型資料庫管理系統,分別在不同的作業系統平臺上服務。DB2主要應用於大型應用系統,具有較好的可伸縮性,可以支援從大型機到單使用者環境,應用於OS/2、Windows等平臺下。

SQL Server 是美國微軟公司開發的一個關係資料庫管理系統,以 T-SOL 作為其資料庫查詢和程式語言。SQL Server 採用二級安全驗證、登入驗證以及資料庫使用者許可驗證等安全模式。

四、資料庫伺服器,資料庫管理系統,表與記錄的關係(重點理解)

  資料庫說白了就是資料夾

  資料庫管理系統就是一個軟體

  資料庫伺服器:就是對外專門提供資料的一個機器

  表:student, scholl, class_list(即檔案)

  資料庫:lzsh_info(即資料夾)

  資料庫管理系統:如MySQL(是一個軟體)

  資料庫伺服器:一臺計算機(對記憶體要求比較高)

總結:

  資料庫伺服器---執行--->資料庫管理軟體

  資料庫管理軟體--->管理--->資料庫

  資料庫---組織--->表,即資料夾---組織--->檔案

  表---存放--->多條記錄,即檔案---存放--->多行內容

五、MySQL 簡介

  MySQL 是一個關係型資料庫管理系統,由瑞典 MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關係型資料庫管理系統,在 WEB 應用方面 MySQL 是最好的 RDBMS (Relational Database Management System,關係資料庫管理系統) 應用軟體之一。

1、MySQL 是什麼?

  MySQL 就是一個基於 socket 編寫的 C/S 架構的軟體

  客戶端軟體:

    MySQL 自帶:如 mysql 命令,mysqldump 命令等

    Python 模組:如 pymysql

2、資料庫管理軟體分類

  關係型:如SQLite,DB2,Oracle,Access,SQL Server,MySQL,注意:SQL語句通用

  非關係型:MongoDB,Redis,Memcache

  可以簡單的理解為:關係型資料庫需要有表結構,非關係型資料庫是key-value儲存的,沒有表結構

六、MySQL 的安裝

1、在官網下載 MySQL5.6(https://dev.mysql.com/downloads/mysql/5.6.html#downloads),得到一個壓縮包

2、將下載的壓縮包解壓後的整個目錄放在自己喜歡的位置,我的放在 D 盤的 Program Files 下,並改名為 MySQL5.6

3、進入MySQL5.6 目錄,將裡面的 my-default.ini 檔案複製一份,並命名為 my.ini

4、開啟 my.ini 檔案將裡面的 basedir 前面的 # 取消(取消註釋),將其值設定為我們解壓後的 MySQL5.6 根目錄路徑;將 datadir 取消註釋設定為 MySQL5.6 裡的 data 目錄路徑,這是存放資料的路徑。並且我還設定了字元編碼為utf8(注意:MySQL 中的 uft8 編碼中間沒有橫槓,不能寫成 utf-8)

5、安裝 MySQL 服務並啟動:以管理員身份開啟 cmd 視窗後,將目錄切換到你解壓檔案的 bin 目錄

 

再輸入mysqld install 回車執行就行了

 接著就是輸入 net start mysql 啟動服務,提示啟動成功(注:MySQL5.7 以上版本預設沒有 data 目錄,這裡會啟動不成功,需要手動生成 data 目錄)

6、開啟即可登入 MySQL 資料庫,還在命令模式下,將目錄切換到自己的 bin 目錄下。輸入 mysql -uroot -p,預設是沒有密碼的。回車進入,root是使用者名稱

7、配置環境變數

配置好環境變數之後,就可以直接在cmd中輸入 mysql -u root -p 開啟MySQL資料庫,不用進入 bin 目錄,當然你的服務必須啟動先,不然還是不行。可以將服務設定為開機自啟動(Windows 系統下 MySQL 安裝後預設是自啟動)

到這裡 MySQL 就算是安裝完成了,下面來測試一下,接著上面的命令視窗直接輸入show databases; ,表示檢視所有的資料庫,注意不要忘了分號,在 MySQL 中表示語句的結束

再測試環境變數:關閉命令視窗,重新開啟一個新的 cmd 命令視窗直接輸入 mysql -u root -p 就能進入說明環境變數已經配置正確,如圖:

七、為 MySQL 設定修改密碼

方法1: 用 SET PASSWORD 命令 
首先登入 MySQL。 
格式:mysql> set password for 使用者名稱@localhost = password('新密碼'); 
例子:mysql> set password for [email protected] = password('000000'); 

方法2:用 mysqladmin 
格式:mysqladmin -u使用者名稱 -p舊密碼 password 新密碼 
例子:mysqladmin -uroot -p123456 password 000000 

方法3:用 UPDATE 直接編輯 user 表 
首先登入 MySQL。 
mysql> use mysql; 
mysql> update user set password=password('000000') where user='root' and host='localhost'; 
mysql> flush privileges; 

方法4:在忘記 root 密碼的時候,可以這樣 
以 Windows為例: 
1. 關閉正在執行的 MySQL 服務。 
2. 開啟 cmd 視窗,轉到 bin 目錄。 
3. 輸入 mysqld --skip-grant-tables 回車。--skip-grant-tables 的意思是啟動 MySQL 服務的時候跳過許可權表認證。 
4. 再開一個 cmd 視窗(因為剛才那個視窗已經不能動了),轉到 bin 目錄。 
5. 輸入 mysql 回車,如果成功,將出現 MySQL 提示符 >。 
6. 連線許可權資料庫: use mysql; 。 
6. 改密碼:update user set password=password("000000") where user="root";(別忘了最後加分號) 。 
7. 重新整理許可權(必須步驟):flush privileges; 。 
8. 退出 quit。 
9. 登出系統,再進入,使用使用者名稱 root 和剛才設定的新密碼 000000 登入。