2-MySql安裝和基本管理
本節掌握內容:
-
MySQL的介紹安裝、啟動
-
MySQL破解密碼
-
MySQL中統一字元編碼
MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關係型資料庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關係資料庫管理系統) 應用軟體之一。
MySQL是一種關係資料庫管理系統,關係資料庫將資料儲存在不同的表中,而不是將所有資料放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
-
Mysql是開源的,所以你不需要支付額外的費用。
-
Mysql支援大型的資料庫。可以處理擁有上千萬條記錄的大型資料庫。
-
MySQL使用標準的SQL資料語言形式。
-
Mysql可以允許於多個系統上,並且支援多種語言。這些程式語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
-
Mysql對PHP有很好的支援,PHP是目前最流行的Web開發語言。
-
MySQL支援大型資料庫,支援5000萬條記錄的資料倉庫,32位系統表文件最大可支援4GB,64位系統支援最大的表文件為8TB。
-
Mysql是可以定製的,採用了GPL協議,你可以修改原始碼來開發自己的Mysql系統。
由於其社群版的效能卓越,搭配Apache和PHP以及python 可組成良好的開發環境。
應用環境
與其他的大型資料庫例如 Oracle、DB2、SQL Server等相比,MySQL [1] 自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於 MySQL是開放原始碼軟體,因此可以大大降低總體擁有成本。
Linux作為 作業系統, Apache 或 Nginx作為 Web 伺服器,MySQL 作為mysql是什麼?
通俗:mysql就是一個基於socket編寫的C/S架構的軟體
資料庫管理軟體分類
分兩大類: 關係型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql語句通用 非關係型:mongodb,redis,memcache 總結兩句話: 關係型資料庫需要有表結構 非關係型資料庫是key-value儲存的,沒有表結構
所以,現在我們使用關係型資料庫管理系統(RDBMS)來儲存和管理的大資料量。所謂的關係型資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。
RDBMS即關係資料庫管理系統(Relational Database Management System)的特點:
-
1.資料以表格的形式出現
-
2.每行為各種記錄名稱
-
3.每列為記錄名稱所對應的資料域
-
4.許多的行和列組成一張表單
-
5.若干的表單組成database
RDBMS 術語
在我們開始學習MySQL 資料庫前,讓我們先了解下RDBMS的一些術語:
-
資料庫: 資料庫是一些關聯表的集合。.
-
資料表: 表是資料的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。
-
列: 一列(資料元素) 包含了相同的資料, 例如郵政編碼的資料。
-
行:一行(=元組,或記錄)是一組相關的資料,例如一條使用者訂閱的資料。
-
冗餘:儲存兩倍資料,冗餘降低了效能,但提高了資料的安全性。
-
主鍵:主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢資料。
-
外來鍵:外來鍵用於關聯兩個表。
-
複合鍵:複合鍵(組合鍵)將多個列作為一個索引鍵,一般用於複合索引。
-
索引:使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構。類似於書籍的目錄。
-
參照完整性: 參照的完整性要求關係中不允許引用不存在的實體。與實體完整性是關係模型必須滿足的完整性約束條件,目的是保證資料的一致性。
mysql的下載安裝
想要使用MySQL來儲存並儲存資料,則需要做幾件事情:
a. 安裝MySQL服務端
b. 安裝MySQL客戶端
b. 【客戶端】連線【服務端】
c. 【客戶端】傳送命令給【服務端MySQL】服務的接受命令並執行相應操作(增刪改查等)
下載地址:
https://dev.mysql.com/downloads/mysql/
window版本
1、官網去下載
2、針對作業系統的不同下載不同的版本
3.解壓
如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的資料夾移動到指定目錄,如:C:\mysql-5.6.40-winx64
4.新增環境變數
【右鍵計算機】--》【屬性】--》【高階系統設定】--》【高階】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】
5.初始化
?
1 |
mysqld
-
-
initialize
-
insecure
|
6.啟動mysql服務
mysqld #啟動MySQL服務
7.啟動mysql客戶端並連線mysql服務端(新開一個cmd視窗)
mysql -u root -p # 連線MySQL伺服器
上一步解決了一些問題,但不夠徹底,因為在執行【mysqd】啟動MySQL伺服器時,當前終端會被hang住,那麼做一下設定即可解決此問題,即將MySQL服務製作成windows服務
注意:--install前,必須用mysql啟動命令的絕對路徑 # 製作MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.6.40-winx64\bin\mysqld" --install # 移除MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.7.16-winx64\bin\mysqld" --remove 註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令: # 啟動MySQL服務 net start mysql # 關閉MySQL服務 net stop mysql
windows下登入設定密碼
開啟終端,輸入mysql
輸入mysql提供的函式:select user(); # 檢視當前登入的賬號
當前登入的預設賬號為[email protected]
如果想切到root賬號登入
執行命令:
mysql -uroot -p
再檢視當前使用者:
select user();
管理員為root(擁有最高許可權,管理員賬號),密碼為空,以無密碼的方式登入了管理員賬號,是非常危險的一件事情,所以要為管理員賬號設定密碼
設定管理員root賬號密碼為123
C:\Users\mjj>mysqladmin -uroot -p password "123" #設定初始密碼 由於原密碼為空,因此-p可以不用 注意這句話不起作用,請使用update mysql.user set authentication_string =password('') where User='root';
ps:⚠️不用管它。翻譯為:在命令列介面使用密碼不安全,暴露在終端當中。
然後再登入賬號,不輸入密碼則會出現如下結果:
再次執行如下操作:
再檢視一下當前登入的賬號:
如果想將原始密碼123,設定新密碼為456
C:\Users\mjj>mysqladmin -uroot -p"123" password "456" #修改mysql密碼,因為已經有密碼了,所以必須輸入原密碼才能設定新密碼
依次執行如下操作:
mysql -uroot -p456
select user();
密碼忘記——破解密碼
跳過授權方式,直接登入!!
0.以管理員身份開啟cmd
2.停掉mysql服務端
C:\WINDOWS\system32>net stop mysql
MySQL 服務正在停止.
MySQL 服務已成功停止。
3.執行如下命令跳過授權表
#跳過授權表 C:\WINDOWS\system32>mysqld --skip-grant-tables 2018-06-09 17:12:38 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path. 2018-06-09 17:12:38 0 [Note] mysqld (mysqld 5.6.40) starting as process 6052 ...4.
4.再次檢視
5. 現在可以任意的更改密碼,執行如下命令
update mysql.user set authentication_string =password('') where User='root';
6.重新整理許可權,執行命令
flush privileges;
7.退出mysql。執行命令:exit,
8.讓使用者去載入許可權,以管理員身份進入cmd,檢視當前mysql程序
?1 |
tasklist |findstr mysql
#檢視當前mysql的程序
|
9.殺死當前的程序,執行如下命令
taskkill /F /PID 6052 # 殺死當前的程序pid
10.再次執行如下操作,還原
統一字元編碼
進入mysql客戶端,執行\s
為了統一字元編碼,請執行如下操作:
(1)my.ini檔案是mysql的配置檔案,
在C:\mysql-5.6.40-winx64檔案下建立my.ini檔案
(2)將如下程式碼拷貝儲存。
[mysqld]
# 設定mysql的安裝目錄 **後面的路徑一定是安裝sql的目錄(自己電腦的)**
basedir=C:\mysql-5.7.22-winx64\mysql-5.7.22-winx64
# 設定mysql資料庫的資料的存放目錄,必須是data
datadir=C:\mysql-5.7.22-winx64\mysql-5.7.22-winx64\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# mysql埠
port=3306
# 字符集
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
(3)以管理員身份重啟服務,執行如下命令
C:\Windows\system32>net stop MySQL MySQL 服務正在停止.. MySQL 服務已成功停止。 C:\Windows\system32>net start MySQL MySQL 服務正在啟動 . MySQL 服務已經啟動成功。
(4)在cmd中輸入mysql進入mysql環境,執行\s,顯示如下資訊,表示成功
本節掌握內容:
-
MySQL的介紹安裝、啟動
-
MySQL破解密碼
-
MySQL中統一字元編碼
MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關係型資料庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關係資料庫管理系統) 應用軟體之一。
MySQL是一種關係資料庫管理系統,關係資料庫將資料儲存在不同的表中,而不是將所有資料放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
-
Mysql是開源的,所以你不需要支付額外的費用。
-
Mysql支援大型的資料庫。可以處理擁有上千萬條記錄的大型資料庫。
-
MySQL使用標準的SQL資料語言形式。
-
Mysql可以允許於多個系統上,並且支援多種語言。這些程式語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
-
Mysql對PHP有很好的支援,PHP是目前最流行的Web開發語言。
-
MySQL支援大型資料庫,支援5000萬條記錄的資料倉庫,32位系統表文件最大可支援4GB,64位系統支援最大的表文件為8TB。
-
Mysql是可以定製的,採用了GPL協議,你可以修改原始碼來開發自己的Mysql系統。
由於其社群版的效能卓越,搭配Apache和PHP以及python 可組成良好的開發環境。
應用環境
與其他的大型資料庫例如 Oracle、DB2、SQL Server等相比,MySQL [1] 自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於 MySQL是開放原始碼軟體,因此可以大大降低總體擁有成本。
Linux作為 作業系統, Apache 或 Nginx作為 Web 伺服器,MySQL 作為 資料庫,PHP/Perl/ Python作為伺服器端 指令碼 直譯器。由於這四個軟體都是免費或 開放原始碼軟體( FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個穩定、免費的 網站系統,被業界稱為“ LAMP“或“ LNMP”組合。mysql是什麼?
通俗:mysql就是一個基於socket編寫的C/S架構的軟體
資料庫管理軟體分類
分兩大類: 關係型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql語句通用 非關係型:mongodb,redis,memcache 總結兩句話: 關係型資料庫需要有表結構 非關係型資料庫是key-value儲存的,沒有表結構
所以,現在我們使用關係型資料庫管理系統(RDBMS)來儲存和管理的大資料量。所謂的關係型資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。
RDBMS即關係資料庫管理系統(Relational Database Management System)的特點:
-
1.資料以表格的形式出現
-
2.每行為各種記錄名稱
-
3.每列為記錄名稱所對應的資料域
-
4.許多的行和列組成一張表單
-
5.若干的表單組成database
RDBMS 術語
在我們開始學習MySQL 資料庫前,讓我們先了解下RDBMS的一些術語:
-
資料庫: 資料庫是一些關聯表的集合。.
-
資料表: 表是資料的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。
-
列: 一列(資料元素) 包含了相同的資料, 例如郵政編碼的資料。
-
行:一行(=元組,或記錄)是一組相關的資料,例如一條使用者訂閱的資料。
-
冗餘:儲存兩倍資料,冗餘降低了效能,但提高了資料的安全性。
-
主鍵:主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢資料。
-
外來鍵:外來鍵用於關聯兩個表。
-
複合鍵:複合鍵(組合鍵)將多個列作為一個索引鍵,一般用於複合索引。
-
索引:使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構。類似於書籍的目錄。
-
參照完整性: 參照的完整性要求關係中不允許引用不存在的實體。與實體完整性是關係模型必須滿足的完整性約束條件,目的是保證資料的一致性。
mysql的下載安裝
想要使用MySQL來儲存並儲存資料,則需要做幾件事情:
a. 安裝MySQL服務端
b. 安裝MySQL客戶端
b. 【客戶端】連線【服務端】
c. 【客戶端】傳送命令給【服務端MySQL】服務的接受命令並執行相應操作(增刪改查等)
下載地址:
https://dev.mysql.com/downloads/mysql/
window版本
1、官網去下載
2、針對作業系統的不同下載不同的版本
3.解壓
如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的資料夾移動到指定目錄,如:C:\mysql-5.6.40-winx64
4.新增環境變數
【右鍵計算機】--》【屬性】--》【高階系統設定】--》【高階】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】
5.初始化
?
1 |
mysqld
-
-
initialize
-
insecure
|
6.啟動mysql服務
mysqld #啟動MySQL服務
7.啟動mysql客戶端並連線mysql服務端(新開一個cmd視窗)
mysql -u root -p # 連線MySQL伺服器
上一步解決了一些問題,但不夠徹底,因為在執行【mysqd】啟動MySQL伺服器時,當前終端會被hang住,那麼做一下設定即可解決此問題,即將MySQL服務製作成windows服務
注意:--install前,必須用mysql啟動命令的絕對路徑 # 製作MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.6.40-winx64\bin\mysqld" --install # 移除MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.7.16-winx64\bin\mysqld" --remove 註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令: # 啟動MySQL服務 net start mysql # 關閉MySQL服務 net stop mysql
windows下登入設定密碼
開啟終端,輸入mysql
輸入mysql提供的函式:select user(); # 檢視當前登入的賬號
當前登入的預設賬號為[email protected]
如果想切到root賬號登入
執行命令:
mysql -uroot -p
再檢視當前使用者:
select user();
管理員為root(擁有最高許可權,管理員賬號),密碼為空,以無密碼的方式登入了管理員賬號,是非常危險的一件事情,所以要為管理員賬號設定密碼
設定管理員root賬號密碼為123
C:\Users\mjj>mysqladmin -uroot -p password "123" #設定初始密碼 由於原密碼為空,因此-p可以不用 注意這句話不起作用,請使用update mysql.user set authentication_string =password('') where User='root';
ps:⚠️不用管它。翻譯為:在命令列介面使用密碼不安全,暴露在終端當中。
然後再登入賬號,不輸入密碼則會出現如下結果:
再次執行如下操作:
再檢視一下當前登入的賬號:
如果想將原始密碼123,設定新密碼為456
C:\Users\mjj>mysqladmin -uroot -p"123" password "456" #修改mysql密碼,因為已經有密碼了,所以必須輸入原密碼才能設定新密碼
依次執行如下操作:
mysql -uroot -p456
select user();
密碼忘記——破解密碼
跳過授權方式,直接登入!!
0.以管理員身份開啟cmd
2.停掉mysql服務端
C:\WINDOWS\system32>net stop mysql
MySQL 服務正在停止.
MySQL 服務已成功停止。
3.執行如下命令跳過授權表
#跳過授權表 C:\WINDOWS\system32>mysqld --skip-grant-tables 2018-06-09 17:12:38 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path. 2018-06-09 17:12:38 0 [Note] mysqld (mysqld 5.6.40) starting as process 6052 ...4.
4.再次檢視
5. 現在可以任意的更改密碼,執行如下命令
update mysql.user set authentication_string =password('') where User='root';
6.重新整理許可權,執行命令
flush privileges;
7.退出mysql。執行命令:exit,
8.讓使用者去載入許可權,以管理員身份進入cmd,檢視當前mysql程序
?1 |
tasklist |findstr mysql
#檢視當前mysql的程序
|
9.殺死當前的程序,執行如下命令
taskkill /F /PID 6052 # 殺死當前的程序pid
10.再次執行如下操作,還原
統一字元編碼
進入mysql客戶端,執行\s
為了統一字元編碼,請執行如下操作:
(1)my.ini檔案是mysql的配置檔案,
在C:\mysql-5.6.40-winx64檔案下建立my.ini檔案
(2)將如下程式碼拷貝儲存。
[mysqld]
# 設定mysql的安裝目錄 **後面的路徑一定是安裝sql的目錄(自己電腦的)**
basedir=C:\mysql-5.7.22-winx64\mysql-5.7.22-winx64
# 設定mysql資料庫的資料的存放目錄,必須是data
datadir=C:\mysql-5.7.22-winx64\mysql-5.7.22-winx64\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# mysql埠
port=3306
# 字符集
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
(3)以管理員身份重啟服務,執行如下命令
C:\Windows\system32>net stop MySQL MySQL 服務正在停止.. MySQL 服務已成功停止。 C:\Windows\system32>net start MySQL MySQL 服務正在啟動 . MySQL 服務已經啟動成功。
(4)在cmd中輸入mysql進入mysql環境,執行\s,顯示如下資訊,表示成功