MySQL的安裝和基本管理

来源:https://www.cnblogs.com/wangyueping/archive/2019/07/27/11243494.html
-Advertisement-
Play Games

MySQL的安裝和基本管理 一、MySQL介紹 MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關係型資料庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Manag ...


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

MySQL是什麼?
總結:MySQL就是一個基於socket編寫的C/S架構的軟體


二、應用環境

與其他的大型資料庫例如 Oracle、DB2、SQL Server等相比,MySQL [1] 自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於 MySQL是開放源碼開放源碼)軟體,因此可以大大降低總體擁有成本。

linux作為操作系統操作系統,Apache 或Nginx作為 Web 伺服器,MySQL 作為資料庫資料庫,PHP/Perl/Python作為伺服器端腳本腳本解釋器解釋器。由於這四個軟體都是免費或開放源碼開放源碼軟體(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個穩定、免費的網站系統網站系統,被業界稱為“LAMP“或“LNMP”組合。


三、資料庫管理軟體分類

分兩大類:
  關係型:如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的下載和安裝

想要使用MySQL來存儲並保存數據,則需要做幾件事情:

  a. 安裝MySQL服務端
  b. 安裝MySQL客戶端
  b. 【客戶端】連接【服務端】
  c. 【客戶端】發送命令給【服務端MySQL】服務的接受命令並執行相應操作(增刪改查等)

下載地址:https://dev.mysql.com/downloads/mysql/


五、windows版本

windows版本的安裝與下載

  1. 去官網下載


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


  3. 如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的文件夾移動到指定目錄,如:E:\Program Files


  4. 添加環境變數

    (以下以win10為例, win7操作大同小異)

    桌面 --> 右鍵單擊‘此電腦’ --> 在快捷菜單中單擊‘屬性’命令 --> 在打開的文件夾中單擊‘高級系統設置’命令 --> 在打開的對話框中選擇‘高級選項卡’ --> 單擊‘環境變數’按鈕 --> 找到‘系統變數’列表框 --> 雙擊其中的Path --> 將安裝的MySQL文件夾下的bin路徑(例如:E:\Program Files\mysql-5.7.23-winx64\bin)添加進去 --> 單擊'確定'按鈕


  5. 初始化

    在cmd中輸入以下指令

    mysqld --initialize-insecure


  6. 啟動MySQL服務端

    在cmd中輸入以下指令

    mysqld
    # 啟動mysql服務端


  7. 啟動mysql客戶端並連接mysql服務端(新開一個cmd視窗)

    mysql -u root -p # 連接MySQL伺服器


上一步解決了一些問題,但不夠徹底,因為在執行【mysqd】啟動MySQL伺服器時,當前終端會被hang住,那麼做一下設置即可解決此問題,即將MySQL服務製作成windows服務

註意:--install前,必須用mysql啟動命令的絕對路徑
# 製作MySQL的Windows服務,在終端執行此命令:
"E:\Program Files\mysql-5.7.23-winx64\bin\mysqld" --install

# 移除MySQL的Windows服務,在終端執行此命令:
"E:\Program Files\mysql-5.7.23-winx64\bin\mysqld" --remove


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

# 關閉MySQL服務
net stop mysql


windows下設置登錄密碼

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

假定為管理員root賬號密碼為123

C:\Users\mjj>mysqladmin -uroot -p password "123"  #設置初始密碼 由於原密碼為空,因此-p可以不用 Mysql版本的不同,可能執行這句指令不起作用,請使用update mysql.user set authentication_string =password('') where User='root'; 

ps:⚠️不用管它。翻譯為:在命令行界面使用密碼不安全,暴露在終端當中。

再次啟動mysql客戶端並連接服務端:


如果想將原始密碼123,設置新密碼為456

C:\Users\mjj>mysqladmin -uroot -p"123" password "456"  #修改mysql密碼,因為已經有密碼了,所以必須輸入原密碼才能設置新密碼


密碼忘記 ---- 破解密碼

跳過授權方式,直接登錄!!

  1. 以管理員身份打開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. 再次執行如下操作,還原


windows下統一字元編碼

進入mysql客戶端,執行\s

ps:因為我已經設置過了,所以顯示的都是utf-8,不過打個碼你們應該看不見(滑稽)



為了統一字元編碼,請執行如下操作:

(1)my.ini文件是mysql的配置文件

在mysql安裝路徑下創建my.ini文件(例如:E:\Program Files\mysql-5.7.23-winx64 在這個位置下創建my.ini文件)

(2)打開my.ini文件將如下代碼拷貝保存

[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的模式為ONLY_FULL_GROUP_BY
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY

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


六、Linux版本

  1. 安裝

    yum install mysql-server  
  2. 服務端啟動

    mysql.server start
  3. 客戶端連接

    連接:
        mysql -h host -u user -p
    
        常見錯誤:
            ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running.
    退出:
        QUIT 或者 Control+D






您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 總結起來,基本都是ctrl+w然後加上某一個按鍵字母,觸發一個功能。 (1)在shell里打開幾個文件並且分屏: vim -On file1 file2 ... vim -on file1 file2 ... 大O表示垂直分割(vertical),小o表示水平分割(預設horizontal),後... ...
  • Linux 登錄、註銷與關機 這裡主要學習的是命令行環境下的相關操作。 一、登錄 Linux 預設的情況下會提供六個終端來讓用戶登錄,切換的方式為使用:【Ctrl + Alt + F1 ~ F6】的組合鍵。系統會將 [F1] ~ [F6] 命名為 tty1 ~ tty6 的操作介面環境。 也就是說, ...
  • 打開多個文件: 1、vim還沒有啟動的時候: 在終端里輸入 vim file1 file2 ... filen 便可以打開所有想要打開的文件 ...
  • Kali Linux安裝好預設是不開啟ssh的,需要手工開啟 1.修改/etc/ssh/sshd_config 配置文件: root@mykali:~# vi /etc/ssh/sshd_config 2.找到#PasswordAuthentication yes 把“#”去掉 3.找到# Perm ...
  • 最近檢查發現一臺Linux伺服器,發現其日誌裡面有大量下麵信息,其中部分信息做了脫敏處理。其中一個地址A(192.168.AAA.AAA) 為DNS伺服器地址,地址B(192.168.BBB.BBB)為動態獲取的IP地址。 #脫敏後信息如下所示: Jul 24 15:14:18 xxxxxx dhc... ...
  • Net namespace實驗 在 Linux 中,網路名字空間可以被認為是隔離的擁有單獨網路棧(網卡、路由轉發表、iptables)的環境。網路名字空間經常用來隔離網路設備和服務,只有擁有同樣網路名字空間的設備,才能看到彼此。 network namespace 是實現網路虛擬化的重要功能,它能創 ...
  • Linux learning path Mind Map ...
  • 1 概覽 1.1 預定義的源和接收器 Flink內置了一些基本數據源和接收器,並且始終可用。該預定義的數據源包括文件,目錄和插socket,並從集合和迭代器攝取數據。該預定義的數據接收器支持寫入文件和標準輸入輸出及socket。 1.2 綁定連接器 連接器提供用於與各種第三方系統連接的代碼。目前支持 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...