03-MySql安裝和基本管理


本節掌握內容:

  • MySQL的介紹安裝、啟動

  • windows上制作服務

  • 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 可組成良好的開發環境。

 

應用環境

與其他的大型數據庫例如 OracleDB2SQL 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】服務的接受命令並執行相應操作(增刪改查等)

下載地址:

 

window版本

1、官網去下載

 

 

2、針對操作系統的不同下載不同的版本

 

 

3.解壓

如果想要讓MySQL安裝在指定目錄,那么就將解壓后的文件夾移動到指定目錄,如:C:\mysql-5.6.40-winx64

4.添加環境變量 

5.初始化

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.6.40-winx64\bin\mysqld" --remove


注冊成服務之后,以后再啟動和關閉MySQL服務時,僅需執行如下命令:
# 啟動MySQL服務
net start mysql

# 關閉MySQL服務
net stop mysql

 

windows下登錄設置密碼

 

打開終端,輸入mysql

輸入mysql提供的函數:select user(); # 查看當前登錄的賬號

當前登錄的默認賬號為ODBC@localhost

 

 

如果想切到root賬號登錄

執行命令:

mysql -uroot -p

再查看當前用戶:

select user();

管理員為root(擁有最高權限,管理員賬號),密碼為空,以無密碼的方式登錄了管理員賬號,是非常危險的一件事情,所以要為管理員賬號設置密碼

設置管理員root賬號密碼為123

C:\Users\mjj>mysqladmin -uroot -p password "123"  #設置初始密碼 由於原密碼為空,因此-p可以不用 Mysql版本的不同,可能執行這句指令不起作用,請使用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進程

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,顯示如下信息,表示成功

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM