22-MYSQL數據庫-1

22-MYSQL數據庫

 

                

                表和表之間是有關係的,所以是關係型數據庫

 

                數據模型

                        數據抽象:

                        物理層:數據存儲格式,即RDBMS在磁盤上如何組織文件

                        邏輯層:DBA角度,描述存儲什麼數據,以及數據間存在什麼樣的關係

                        視圖層:用戶角度,描述DB中的部分數據

                        關係模型的分類:

                        關係模型

                        基於對象的關係模型

 

                        半結構化的關係模型:XML數據 

                        

 

                修改登陸選項

                        

 

                增加兩行,自動登錄,以root身份

                            

 

                修改用戶登陸信息顯示(此文件也是小型數據庫)

                        

 

                修改最後一行爲true

                        

                      

 

                成功了

                        

 

                在centos 6 上查看安裝包版本。

                        

 

                在Centos 7 上查看安裝版本。注意是安裝包是 mariadb

                        

 

                修改好centos 7 上的yum倉庫。

                        

 

                修改好centos 6 上的yum倉庫。

                        

 

                清除之前yum錯誤緩存。

                        

 

                在Centos 7 上安裝數據庫。

                        

 

                安裝成功啦

                        

 

                查看端口和服務器是否啓動。mysql默認端口號是3306,沒有看到。說明服務沒有啓動。

                        

 

                啓動mysql服務,默認啓動名稱是 mariadb.service 但可以沒有,默認系統會自動添加。

                        

 

                啓動服務後再次查看TPC 端口號和進程名。倒數第二個3306端口就是MYsql,進程號是7051

                        

 

                查看進程樹和端口號。

                        

 

                可以看到MY sql是單進程,多線程服務。可以看到和查看端口號的主進程號是一樣的端口。

                        mysql 工作原理是主進程 7051 負責監聽本機 TCP 3306端口,當有用戶進程訪問 3306端口的時候,主進程負責接收請求,並把它轉到後臺任意一個閒置進程去。而主進程繼續監聽端口。

                        

 

                我們可以看到 DNS 服務也是dan

 

                查看進程和端口號,老命令。

                        

 

                輸入mysql直接進入數據庫模式

                        

 

查看數據庫

                        共計4個數據庫,查詢用時。

                        

 

                切換數據庫

                        切換到什麼數據庫,後面就會顯示數據庫名。

                        

 

                查詢 MYsql 客戶端命令。

                        

 

                我們看到 use 有快捷命令 \u

                        可以直接切換

                        

 

                我們看到 help 是查看客戶端命令。  help contents 是查看服務器端命令。

                        

 

                查看服務器端命令

                        

 

                隨便查詢一個功能

                        裏面有很多的功能語句

                        

 

                再次help INSERT

                        他會告訴你這個語句如何寫。

                        

 

                結尾還有更多的官方文檔可以查看。

                        

 

                我們查看數據庫,這條命令是服務器端命令。我們不打;就意味着服務器認爲命令不完整,等待輸入。

                        

 

                直到我們輸入;回車以後,纔會顯示數據庫列表。

                        

 

                切換數據庫命令是客戶端命令,不需要加分號。但加了分號也是無所謂的。

                        

 

                如果我們忘記命令 可以直接 help 進行查詢,或者查看命令的用法。

                        

 

                最後還可以查看具體 show 的官方文檔。

                        

 

                我們退出來,直接在系統上查看mysql 後面可以跟什麼參數和選項。

                        

我們登陸的時候可以直接跟數據庫名字,直接登陸。

                        

 

                嘗試建立一個數據庫。成功。

                        

 

                查看數據庫。沒問題。

                        

 

                切換到一個普通用戶嘗試執行數據庫命令。

                        

 

                直接登陸數據庫,並查看數據庫文件。

                        

 

                我們嘗試刪除之前建立的空數據庫。

                        

 

                再次查看數據庫,已經刪除成功了。

                        

    

                退出數據庫,注意我們此時還是用普通用戶在登陸。

                        

 

                我們查看系統賬戶。

                        只有一個root本地登陸賬戶。mysql默認以自身root數據庫管理員身份登陸。而且是空口令。winwows mysql 數據庫管理員賬號 是sa,所以此root非彼centos 系統中的root。

                        

 

                這是正確的登陸方式。以某個用戶身份登陸數據庫,quite方式輸入密碼。

                        這裏由於我們root賬戶並沒有指定密碼,所以直接回車登陸就可以了。

                        

 

                如果我們隨便寫一個名字去嘗試登陸可以嗎?

                        證明是可以的。系統默認允許匿名登陸。

                        

 

                查看當前賬號,只有我自己。可是我們是剛裝的mysql 並沒有建立過這個賬戶,所以系統默認很不安全,任意用戶名都可以登陸。

                        

 

                查看數據庫,發現了問題。只有兩個數據庫,權限有問題。

                        

 

                我們切換回root登陸。查看數據庫。還是四個數據庫。

                        

 

                查看MYsql數據庫中所有的表。

                        

 

                我們就查看最後一張,用戶表。

                        

 

                我們試着打印用戶表的所有內容。

                        

 

                顯示用戶表的所有列,字段。

                        

 

                報錯是因爲退出了mysql數據庫所以執行命令報錯。

                        

 

                進入數據庫後,發現顯示信息,列的名字最後password打錯了,所以報錯。

                        

 

                顯示用戶,主機,密碼,三列。

                        

運行安全腳本,使數據庫更安全。

                        詢問現有root是否有密碼,沒有密碼直接回車。

                        

 

                        詢問是否需要設置管理員密碼,設置兩遍。

                        

 

                        詢問是否刪除匿名賬號登陸。刪除。

                        

 

                        是否禁止root遠程登陸。禁止。

                        

 

                        是否生效當前的配置,生效。

                        

 

                        結束。感謝使用。    

                        

 

                此時我們在直接登陸已經不行了,必須輸入用戶名密碼。

                        

 

                我們用root登陸 mysql 數據庫, 登陸 mysql數據庫

                        

 

                再次查詢user表  用戶 主機 和密碼 字段。

                        

 

                關閉centos 6 的 圖形啓動界面。

                        

 

                再次查看安裝包。注意安裝包名大小寫。

                        

YUM安裝 MariaDB 實現同時運行三實例

                

 

                創建三個文件夾,並創建相應的子文件夾,,爲後面實例對應的服務端口啓動,和相應數據庫配置文件存放做準備。

                        

 

                查看文件夾是否成功。

                        

 

                查看安裝數據庫的時候是否創建了對應的系統賬號。

                        並把剛纔創建的所有文件夾的所有人和所有組都改成數據庫賬戶。不然運行服務後,讀寫執行文件夾權限都會出現問題。

                        

 

                檢查權限

                        

 

                把數據庫配置文件指向到我們設置好的文件夾下,系統會自動同步文件。

                        執行三遍,3306,3307,3308。

                        

 

                        3307。

                        

 

                        3308。

                        

 

                再次查看文件夾情況。以3306爲例子。

                        

 

                複製原有的MYSQL 配置文件到 3306下,修改後 在批量發送到3307和3308上。

                        

 

                查看文件

                        

 

                修改配置文件爲此樣子。視頻爲老版本,本次是最新版本安裝。配置文件略有不同。

                        第二行,修改服務端口號,第三行,存放數據庫路徑。第四行,修改socket路徑, 第八行,修改日誌文件路徑,第九行,修改PID路徑。

                        

 

                複製配置文件到3307和3308兩個服務文件夾上去。

                        

 

                修改兩個文件夾的文件,3306字段改爲3307和3308

                        

 

                用事先準備好的啓動腳本。RZ上傳進來。

                        

查看文件

                        

 

                打開文件

                        

 

                只用修改文件端口號就可以。

                        

 

                加上執行權限,準備運行。

                        

 

                mysql默認開機自動啓動。

                        

 

                查看現在MYSQL服務並沒有啓動。

                         

 

                運行命令。發現命令要加參數才能執行。

                        

 

                啓動腳本,執行數據庫!並查看端口,成功啦!!!

                        

 

                查看數據庫進入端口文件。

                        

 

                查看文件元屬性。

                        

 

                查看進程PID

                        

 

                查看現在的進程 pstree -p 沒有問題。號碼正好對應。

                        

 

                進入數據庫,查看是否成功。

                        失敗了,注意命令大小寫。

                        

 

                進入數據庫,成功了。

                        

 

                建立一個數據庫,並查看。沒問題。

                        

 

                查看我們文件夾的數據,多了一個剛纔建立的db3306文件夾。

                        

 

                複製腳本到另外兩個服務端口文件夾下。

                        

 

                修改端口號。3308

                        

 

                修改端口號,3307。

                        

 

                把兩個文件夾端口的服務啓動起來。        

                        

 

                再次查看端口號,成功了。

                        

 

                嘗試進入數據庫。

                        

 

                查看數據庫,並創建一個 db3307的數據庫 成功。

                        

 

                查看 3307的數據文件夾。

                        

 

                我們嘗試停止 3308 的服務。需要輸入密碼。 我們是空密碼,直接回車。

                        

 

                再次查看端口服務。3308  已經停止成功了。

                        

 

                開機之後先啓動腳本

                        

進入數據庫。

                        

 

                創建數據庫,並查看。

                        

 

                創建一個同名數據庫,會報錯。

                        

 

                如果我們加選項,就會警報。

                        

 

                查看警報。

                        

 

                但如果我們再執行一遍剛纔的命令。出現警報後,我們查看數據庫。再查看警報。就會發現警報沒了。警報只適用於剛纔輸入的命令。

                        

 

                查看編碼,最好用utf8mb4編碼機制。

                        

                        

 

                查看系統版本。

                        

 

                我們刪除原有的test數據庫,創建testdb數據庫,創建test2 utf8mb4 編碼機制數據庫。

                        

 

                查看當前數據庫

                        數據庫就是一個容器,表的集合。

                        

 

                我們之前創建的 testdb 表沒有任何指定,默認就是拉丁字符集合。

                        

 

                我們之前創建的 testdb2 表,有指定字符集。

                        

 

                在數據庫文件夾下可以看到兩個數據庫文件夾

                        

 

                以test2 爲例子,進入文件夾查看一下。是空的。

                        

 

                如果我們忘記命令 可以直接help,後面跟隨命令。

                        

 

                我們創建一個db1數據庫,進入數據庫。

                        

 

                我們在數據庫中創建一個表 students表。包括 id name age。

                        

 

                我們在 db1 數據庫中 查看剛建立的學生表信息。可以看到字符集。拉丁文

                        

 

                我們切換到testdb2中,再次建立 學生表。

                        

 

                我們在tstsdb2 數據庫中查看 學生表 信息。

                        

 

                顯示學生表字段。可以看到 第一個字段是主鍵。

                        

 

            我們建立學生表2 設置一個複合主鍵。

                        

 

                查看學生表2 的信息。可以看到 第一個和第二個字段就是複合主鍵。在一張表中只有一個主鍵,這個是複合主鍵。

                        

 

                查看tastdb2 的 表。

                        

 

                查看 testdb2 數據庫文件,.frm 是表定義。二進制文件,存放數據格式等信息。.ibd 是存放真正的數據文件。

                        

 

                刪除表,並查看。

                        

            

                我們建立一張 emp表。發現失敗了,報錯提示 ,沒有設置主鍵。

                        

 

                我們建立 emp  表,並設置主鍵。

                        

 

                查看剛纔建立表的字段。

                        

 

                查看錶的 所有 信息。空表。

                        

 

                插入信息,標準寫法。

                        

 

                再次查看錶信息。

                        

 

                繼續插入信息。這次我們不寫主鍵 id 序號,因爲前面已經定義了,會自動增加。

                        

 

                查看錶。沒問題。

                        

            

                這次我們繼續添加信息,如果不寫年齡字段會怎麼樣呢?

                        

 

                查看錶,我們發現沒有填寫的信息,顯示爲空值,NULL。

                        

繼續添加信息,我們一次添加兩行信息。毛豆,綠豆。

                        

 

                查看錶。沒問題。

                        

 

                把 EMP 表中的所有數據 輸出出來複製到  customs 表中。相當於複製。

                        

 

                清空表,並查看。清空是不記錄日誌的  delete是記錄日誌的。

                        

 

                再次把 customs 表中的數據 複製回 emp 表中。

                        

 

                顯示學生表的所有信息。並查看學生表的字段。

                        

 

                把 emp 表的所有信息 複製到 students 表中。提示報錯,因爲兩個表的字段不一樣。

                        

 

                我們把 emp 表中的 學號,姓名,年齡。複製到學生表中。成功了。

                        

 

                顯示學生表的所有信息。

                        

 

                把第三條記錄 的年齡添加上。

                        

 

                鑑於之前修改年齡命令 如果不加 where命令 等於批量 太過於危險。所以增加保護措施。

                        

 

                再次嘗試命令,失敗了。成功了。

                        

 

                還原。

                        

 

                如果直接按剛纔的命令,數據路 age 字段 所有數據都被破壞了。

                        

 

                刪除單條記錄。並查看錶。

                        

 

                準備好一個事先準備好的文件,目錄名同上

                        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章