目錄
一.數據庫概念
一、數據庫的基本定義
二、數據庫管理系統(DBMS)
三、數據庫系統(DBS)
四、數據模型
五、數據庫的特點
六、數據庫的應用領域
二.MySql
一、開源免費,降低中大型項目成本
二、跨平臺與兼容性,適配中大型系統復雜環境
三、高性能與穩定性,支撐中大型系統的高并發需求
四、可擴展性強,滿足中大型系統的規模增長
五、豐富的生態與工具鏈,提升中大型項目效率
六、社區支持與版本迭代,保障長期可用性
三.MYSQL的安裝配置(社區版免費)
1. 下載 MySQL 安裝包
2. 解壓與配置環境變量
3. 初始化配置文件
4. 初始化與安裝服務
5. 登錄與修改密碼
二、Linux 系統(CentOS 7/8)安裝配置 MySQL
1. 卸載舊版本(如有)
2. 安裝 MySQL
3. 啟動服務與設置開機自啟
4. 獲取臨時密碼與修改密碼
5. 配置遠程訪問(可選)
三、macOS 系統安裝配置 MySQL
1. 下載與安裝
2. 啟動服務
3. 初始化與修改密碼
四、通用配置優化(適合中大型系統)
五、驗證安裝成功
一.數據庫概念
一、數據庫的基本定義
數據庫(Database,簡稱 DB)是長期存儲在計算機內、有組織的、可共享的大量數據的集合。其數據按照一定的數據模型組織、描述和存儲,具有較小的冗余度、較高的數據獨立性和易擴展性,并可為各種用戶共享。
例如,學校的學生信息管理系統中,存儲學生基本信息、成績、選課情況等數據的集合就是一個數據庫。
二、數據庫管理系統(DBMS)
數據庫管理系統是位于用戶與操作系統之間的一層數據管理軟件,它為用戶或應用程序提供訪問數據庫的方法,包括數據庫的建立、查詢、更新及各種數據控制。
常見的 DBMS 有:
- 關系型數據庫管理系統:MySQL、Oracle、SQL Server、PostgreSQL 等,它們采用關系模型(二維表)來組織數據。
- 非關系型數據庫管理系統(NoSQL):MongoDB(文檔型)、Redis(鍵值型)、Cassandra(列族型)等,適用于處理大規模、高并發的非結構化或半結構化數據。
DBMS 的主要功能包括:
- 數據定義功能:提供數據定義語言(DDL),用于定義數據庫的結構,如創建表、修改表結構等。
- 數據操縱功能:提供數據操縱語言(DML),用于對數據進行查詢、插入、刪除和修改等操作。
- 數據庫的運行管理:負責數據庫的安全性、完整性、并發控制和恢復等,保證數據庫系統的正常運行。
- 數據庫的建立和維護功能:包括數據庫的初始數據導入、轉儲、恢復、性能監控等。
三、數據庫系統(DBS)
數據庫系統是指在計算機系統中引入數據庫后的系統,一般由數據庫、數據庫管理系統(及其開發工具)、應用系統、數據庫管理員(DBA)和用戶構成
- 數據庫管理員(DBA):負責數據庫的規劃、設計、維護、監控等工作,確保數據庫系統的正常運行和數據安全。
- 應用系統:基于數據庫開發的各種應用軟件,如電商網站的后臺管理系統、銀行的交易系統等,通過 DBMS 與數據庫進行交互。
四、數據模型
數據模型是對現實世界數據特征的抽象,用于描述數據的結構、數據之間的關系以及對數據的操作等。它是數據庫系統的核心和基礎。
主要的數據模型有:
- 層次模型:采用樹形結構來組織數據,每個節點表示一個實體,節點之間的關系是一對多的。例如,一個公司的部門結構,總部下設多個分部,每個分部又下設多個科室,就可以用層次模型來表示。
- 網狀模型:采用網狀結構(多對多關系)來組織數據,允許一個節點有多個父節點。適用于表示復雜的多對多關系,如學生與課程的選課關系,一個學生可以選多門課程,一門課程也可以被多個學生選。
- 關系模型:用二維表(關系)來表示數據和數據之間的關系,表中的每行稱為一條記錄(元組),每列稱為一個屬性(字段)。關系模型具有結構簡單、操作方便等優點,是目前應用最廣泛的數據模型。例如,學生表(學號、姓名、年齡、性別)就是一個關系模型。
- 面向對象模型:將現實世界中的實體抽象為對象,每個對象包含屬性和方法,對象之間可以通過消息進行通信。它能更好地描述復雜的現實世界實體,適用于多媒體、工程設計等領域。
五、數據庫的特點
- 數據結構化:數據庫中的數據是按照一定的數據模型進行組織和存儲的,具有整體的結構化,而不是零散的、無組織的。
- 數據的共享性高,冗余度低:數據庫中的數據可以被多個用戶、多個應用程序共享使用,減少了數據的重復存儲,降低了數據冗余。
- 數據獨立性高:包括物理獨立性和邏輯獨立性。物理獨立性是指用戶的應用程序與存儲在磁盤上的數據庫中的數據是相互獨立的;邏輯獨立性是指用戶的應用程序與數據庫的邏輯結構是相互獨立的。
- 數據由 DBMS 統一管理和控制:DBMS 對數據的安全性、完整性、并發控制和恢復等進行統一管理,保證了數據的可靠性和一致性。
六、數據庫的應用領域
數據庫廣泛應用于各個行業和領域:
- 金融領域:銀行、證券等機構用于存儲客戶信息、交易記錄等,支持各種金融業務的開展。
- 電商領域:存儲商品信息、用戶訂單、物流信息等,為電商平臺的運營和管理提供數據支持。
- 教育領域:管理學生信息、教師信息、教學資源等,輔助學校的教學和管理工作。
- 醫療領域:存儲患者病歷、診斷記錄、藥品信息等,便于醫生查詢和分析患者病情,提高醫療服務質量。
總之,數據庫是信息時代數據管理的核心技術,它的發展和應用極大地提高了數據處理的效率和準確性,為各種信息系統的建設提供了堅實的基礎。
二.MySql
一、開源免費,降低中大型項目成本
MySQL 是開源數據庫(遵循 GPL 協議),企業無需支付高昂的商業授權費用(如 Oracle 的按核心收費模式)。對于中大型項目而言,數據量和并發量增長會伴隨服務器規模擴張,開源特性可顯著降低長期成本(包括 licensing 費用、定制化開發成本等)。
此外,開源意味著代碼透明,企業可根據自身需求修改源碼(如優化特定場景的存儲引擎邏輯),這對中大型系統的深度定制化需求至關重要。
二、跨平臺與兼容性,適配中大型系統復雜環境
中大型系統的部署環境往往復雜(可能涉及 Linux、Unix、Windows 等多操作系統,甚至混合云架構),而 MySQL 具備極強的跨平臺性:
- 支持主流操作系統(Linux、Windows、macOS、Solaris 等);
- 兼容多種硬件架構(x86、ARM 等),可適配中大型系統的服務器集群(物理機、虛擬機、容器化部署均可);
- 與主流開發語言(Java、Python、PHP、Go 等)無縫集成,且支持 ODBC、JDBC 等標準接口,便于中大型項目的多語言協同開發。
三、高性能與穩定性,支撐中大型系統的高并發需求
MySQL 經過數十年迭代(尤其是 InnoDB 引擎成熟后),性能已能滿足中大型系統的核心需求:
- 存儲引擎優化:默認的 InnoDB 引擎支持事務(ACID 特性)、行級鎖、聚簇索引,可高效處理高并發寫操作(如電商訂單提交、金融交易記錄);針對讀多寫少場景,也可選擇 MyISAM 引擎(雖不支持事務,但讀性能更優)。
- 查詢優化:內置優化器可自動優化 SQL 執行計劃,支持索引(B + 樹、哈希索引等)、分區表(按范圍、列表等拆分大表),減少大表查詢的 IO 開銷。
- 緩存機制:通過 InnoDB 緩沖池(Buffer Pool)緩存熱點數據,減少磁盤 IO;支持查詢緩存(雖在 8.0 版本移除,但可通過 Redis 等外部緩存補充),提升重復查詢效率。
實際案例中,優化后的 MySQL 集群可支撐每秒數萬次并發請求(如中小型電商平臺的峰值場景),且數據量可達千萬至億級(配合分庫分表可擴展至更大規模)。
四、可擴展性強,滿足中大型系統的規模增長
中大型系統的核心挑戰之一是 “數據量與并發量隨業務增長而擴張”,MySQL 通過多種機制支持橫向 / 縱向擴展:
- 主從復制與讀寫分離:1 主多從架構中,主庫負責寫操作,從庫負責讀操作,可通過增加從庫數量擴展讀能力(如電商詳情頁查詢、報表統計等讀請求分流到從庫)。
- 分庫分表:當單表數據量超千萬級時,可通過中間件(如 Sharding-JDBC、MyCat)實現分庫分表(按用戶 ID 哈希、時間范圍等規則拆分),將數據分散到多個物理庫表,避免單庫壓力過大。
- 集群方案:支持 MySQL Cluster(基于 NDB 引擎的高可用集群)、MGR(MySQL Group Replication,組復制,支持自動故障轉移),提升系統可用性(避免單點故障)。
這些特性使 MySQL 能從 “中小型系統” 平滑過渡到 “中大型系統”,無需徹底更換數據庫(降低遷移成本)。
五、豐富的生態與工具鏈,提升中大型項目效率
中大型項目的開發、運維復雜度高,而 MySQL 的生態系統可顯著降低這些成本:
- 開發工具:支持 Navicat、DBeaver 等可視化工具,便于 SQL 編寫、數據導入導出;與主流 IDE(如 IntelliJ IDEA、VS Code)集成,提升開發效率。
- 監控與運維:提供 Percona Monitoring and Management(PMM)、MySQL Workbench 等工具,可監控數據庫性能(CPU、內存、IO 使用率)、慢查詢日志,便于中大型集群的問題排查。
- 云服務支持:主流云廠商(AWS、阿里云、騰訊云等)均提供 MySQL 托管服務(如 RDS for MySQL),支持自動備份、擴容、故障轉移,減少中大型項目的運維人力投入。
六、社區支持與版本迭代,保障長期可用性
MySQL 擁有全球最大的開源數據庫社區之一,意味著:
- 遇到問題時可快速獲取解決方案(如 Stack Overflow、官方文檔、社區論壇);
- 版本迭代快(目前最新穩定版為 8.0+),持續優化性能(如 InnoDB 并行查詢、向量搜索支持)、安全性(如密碼強度增強、審計日志),適配中大型系統的新需求(如 AI 場景下的向量數據存儲)。
三.MYSQL的安裝配置(社區版免費)
1. 下載 MySQL 安裝包
- 訪問 MySQL 官方下載頁:MySQL Community Server
- 選擇對應版本(推薦 8.0 及以上),點擊 “Download”,選擇 “Windows (x86, 64-bit), ZIP Archive”(免安裝版,配置更靈活)。
2. 解壓與配置環境變量
- 將下載的 ZIP 包解壓到自定義目錄(如
D:\mysql-8.0.36-winx64
)。 - 配置環境變量:
- 右鍵 “此電腦”→“屬性”→“高級系統設置”→“環境變量”。
- 在 “系統變量” 中找到 “Path”,點擊 “編輯”→“新建”,添加 MySQL 的
bin
目錄路徑(如D:\mysql-8.0.36-winx64\bin
)。
3. 初始化配置文件
- 在 MySQL 根目錄(如
D:\mysql-8.0.36-winx64
)下新建my.ini
配置文件,內容如下:
[mysqld]
# 設置端口號(默認3306)
port=3306
# 設置MySQL安裝目錄
basedir=D:\mysql-8.0.36-winx64
# 設置數據存儲目錄(需手動創建data文件夾)
datadir=D:\mysql-8.0.36-winx64\data
# 允許最大連接數
max_connections=200
# 服務端字符集(推薦utf8mb4,支持emoji)
character-set-server=utf8mb4
# 默認存儲引擎
default-storage-engine=INNODB
[mysql]
# 客戶端字符集
default-character-set=utf8mb4
4. 初始化與安裝服務
- 以管理員身份打開命令提示符(CMD):
- 進入 MySQL 的
bin
目錄:cd D:\mysql-8.0.36-winx64\bin
- 初始化數據庫(生成臨時密碼,需記錄):
mysqld --initialize --console
(注意:臨時密碼在輸出日志中,格式如root@localhost: 臨時密碼
) - 安裝 MySQL 服務:
mysqld --install MySQL80
(“MySQL80” 為服務名,可自定義) - 啟動服務:
net start MySQL80
- 進入 MySQL 的
5. 登錄與修改密碼
- 登錄 MySQL:
mysql -u root -p
,輸入初始化時的臨時密碼。 - 修改密碼(替換
新密碼
為自定義密碼):
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
- 退出登錄:
exit
二、Linux 系統(CentOS 7/8)安裝配置 MySQL
1. 卸載舊版本(如有)
# 檢查是否安裝過MySQL
rpm -qa | grep mysql
# 卸載(替換包名)
rpm -e --nodeps 包名
# 刪除殘留文件
rm -rf /var/lib/mysql
2. 安裝 MySQL
-
方式 1:通過 YUM 源安裝(推薦):
# 下載MySQL YUM源(以8.0為例)
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
# 安裝源
rpm -ivh mysql80-community-release-el7-7.noarch.rpm
# 安裝MySQL服務
yum install -y mysql-community-server
方式 2:編譯安裝(適合需要定制化的場景,略復雜,此處不展開)
3. 啟動服務與設置開機自啟
# 啟動服務
systemctl start mysqld
# 查看狀態(確認是否啟動成功)
systemctl status mysqld
# 設置開機自啟
systemctl enable mysqld
4. 獲取臨時密碼與修改密碼
- 查看臨時密碼:
grep 'temporary password' /var/log/mysqld.log
- 登錄并修改密碼:
# 登錄
mysql -u root -p
# 修改密碼(需包含大小寫字母、數字、特殊字符)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass@123';
5. 配置遠程訪問(可選)
- 允許 root 用戶遠程登錄(生產環境建議創建專用用戶):
# 切換到mysql庫
use mysql;
# 修改root用戶的主機限制('%'表示允許所有IP)
update user set host='%' where user='root';
# 刷新權限
flush privileges;
開放防火墻 3306 端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
三、macOS 系統安裝配置 MySQL
1. 下載與安裝
-
方式 1:通過官方 DMG 包安裝:
- 下載地址:MySQL for macOS
- 選擇 “macOS 13 (ARM, 64-bit), DMG Archive”(根據系統芯片選擇),雙擊安裝,按提示完成步驟(注意記錄臨時密碼)。
-
方式 2:通過 Homebrew 安裝(更便捷):
# 安裝Homebrew(如未安裝)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安裝MySQL
brew install mysql
2. 啟動服務
- DMG 安裝:通過 “系統偏好設置”→“MySQL” 啟動服務。
- Homebrew 安裝:
brew services start mysql
3. 初始化與修改密碼
- 登錄(Homebrew 安裝默認無密碼,直接回車):
mysql -u root -p
- 設置密碼:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
四、通用配置優化(適合中大型系統)
在my.ini
(Windows)或my.cnf
(Linux/macOS)中添加以下配置,提升性能:
[mysqld]
# 緩存設置(根據服務器內存調整,如8GB內存可設4G)
innodb_buffer_pool_size=4G
# 并發連接數(根據業務需求調整)
max_connections=1000
# 慢查詢日志(記錄執行時間>1秒的SQL,便于優化)
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=1
# 關閉DNS反向解析(加速連接)
skip-name-resolve
五、驗證安裝成功
- 登錄 MySQL:
mysql -u root -p
,輸入密碼后若能進入 MySQL 命令行(顯示mysql>
),則安裝成功。 - 查看版本:
select version();
通過以上步驟,可完成 MySQL 在不同系統的基礎安裝與配置。對于中大型系統,建議額外配置主從復制、定期備份(如mysqldump
)和監控工具(如 PMM),確保數據安全與性能穩定。