我們要如何選擇MySql
目前主流的Mysql有5.0、8.0、9.0
主要區別
MySQL 5.0
- 發布年份:2005年
- 特性:
- 基礎事務支持
- 存儲過程、觸發器、視圖
- 基礎存儲引擎(如MyISAM、InnoDB)
- 外鍵支持
- 基本的全文搜索
- 性能和擴展性:
- 相對較慢,適合小型應用
- 擴展性有限
- 安全性:
- 基本的安全功能
- 不支持較新的安全標準
MySQL 8.0
- 發布年份:2018年
- 特性:
- 原生JSON支持
- CTE(Common Table Expressions)和窗口函數
- 更強大的全文搜索
- 更好的GIS支持
- 持續時間的數據定義語言(DDL)
- 自動數據壓縮和解壓縮
- 角色支持和更好的權限管理
- 性能和擴展性:
- 大幅提升的性能和可擴展性
- 基于資源組的資源管理
- 更好的并發處理
- 安全性:
- 強化的安全功能,如逐步身份驗證、密碼策略
- 數據加密支持
MySQL 9.0
- 目前狀態:尚未發布(假設未來版本)
- 預期特性:
- 更高級的數據分析功能
- 改進的分布式數據庫支持
- 更強的機器學習和人工智能集成
- 更好的自動化和自我優化功能
- 性能和擴展性:
- 預計在8.0基礎上進一步提升性能和可擴展性
- 增強的多租戶支持
- 安全性:
- 預期更高級別的安全和隱私保護功能
生產環境配置
MySQL 5.0
- 適用場景:小型應用和遺留系統
- 硬件需求:相對較低
- CPU:單核或雙核處理器
- 內存:2GB以上
- 磁盤:普通HDD即可
- 配置建議:
- 調整緩沖池和查詢緩存大小以適應小規模負載
MySQL 8.0
- 適用場景:中大型應用,現代化的Web應用和數據密集型應用
- 硬件需求:中高端配置
- CPU:多核處理器(8核以上)
- 內存:16GB以上(視數據量和負載而定)
- 磁盤:SSD以提高I/O性能
- 配置建議:
- 配置InnoDB緩沖池(innodb_buffer_pool_size)以匹配內存大小
- 使用查詢優化器和性能模式進行調優
- 開啟GTID(全局事務標識符)和復制以提高可靠性
- 使用MySQL Enterprise Monitor進行監控
MySQL 9.0
- 適用場景:未來的高性能、大規模分布式應用
- 硬件需求:高端配置(假設)
- CPU:高核數處理器(16核以上)
- 內存:32GB以上(視數據量和負載而定)
- 磁盤:高速SSD或NVMe驅動器
- 配置建議:
- 預計會有更多的自動調優和智能配置選項
- 強化的分布式數據庫配置和管理
- 更高效的資源分配和負載均衡
選擇適合的版本和配置
-
小型應用或遺留系統:
- MySQL 5.0 可能已經足夠,但建議升級到至少MySQL 8.0以獲得更好的性能和安全性。
-
中大型應用和現代化Web應用:
- MySQL 8.0 是目前最佳選擇,提供了豐富的現代功能和改進的性能。
-
未來的高性能、大規模分布式應用:
- 關注MySQL 9.0的發展,并準備在其發布后進行評估和測試。
結論
在生產環境中選擇合適的MySQL版本和配置,主要取決于你的應用需求、數據量、并發負載和性能要求。MySQL 8.0 是目前推薦的版本,適用于大多數現代應用。未來的MySQL 9.0 將提供更多高級功能和性能改進,適合高性能、大規模應用的開發。
這里我們選擇Mysql5.7.44,因為5.x系列的數據庫可以部署在1核2gb內存的linux服務器上,成本最低。并且5.7.44是5.x系列最后一個版本,相對來說也是最穩定的一個版本。
所以現在我們來下載安裝一下Mysql
1,下載
MySQL :: Download MySQL Community Server (Archived Versions)
2,配置環境變量
為了方便使用MySQL命令行工具,可以將MySQL的bin
目錄添加到系統的PATH
環境變量中。
- 右鍵點擊“此電腦”或“我的電腦”,選擇“屬性”。
- 點擊“高級系統設置”。
- 點擊“環境變量”按鈕。
- 在“系統變量”部分,找到并選擇
Path
變量,點擊“編輯”。 - 點擊“新建”,然后輸入MySQL的
bin
目錄路徑,例如:C:\mysql-5.7.44\bin
。 - 點擊“確定”保存。
3. 創建配置文件
創建一個MySQL配置文件my.ini
,并將其放置在MySQL的根目錄(例如C:\mysql-5.7.44
)下。文件內容如下:
[mysqld]
# 設置MySQL的安裝目錄
basedir=D:/Program/mysql-5.7.44-win32# 設置MySQL數據庫的數據存放目錄
datadir=D:/Program/mysql-5.7.44-win32/data# 設置端口
port=3306# 設置字符集
character-set-server=utf8mb4# 設置sql模式
sql_mode=NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER# 設置錯誤消息文件位置
lc-messages-dir=D:/Program/mysql-5.7.44-win32/share# 禁用日志記錄
log_syslog=0# 啟用TLSv1.2并禁用過時的TLS版本
ssl-cipher=TLSv1.2
tls-version=TLSv1.2# 其他設置
default-storage-engine=INNODB
4. 初始化數據庫
????????
-
以管理員身份運行命令行,win下面點擊左下角window按鈕,輸入cmd,在命令提示符右鍵點擊“以管理員身份運行命令行”
-
打開命令提示符(cmd)并導航到MySQL的
bin
目錄,如果你和我一樣把mysql放在d盤,要先在cmd上輸入命令d:再按Enter進入D盤再執行:d:
-
cd D:\Program\mysql-5.7.44-win32\bin
-
初始化數據庫:
mysqld --initialize --console --explicit_defaults_for_timestamp
這條命令將在控制臺輸出一個臨時生成的root用戶密碼,記下這個密碼。
值得注意下面會產生一些警告,是無法避免。
-
這些警告大多數是在初始化過程中出現的正常行為,用于提醒用戶當前系統的狀態和潛在的問題。它們是合理的,并且在大多數情況下無需特別處理。以下是一些應對措施:,InnoDB和UUID警告:這些警告是首次初始化時正常的,無需處理。GTID表警告:初始化后GTID表會正常創建,無需處理。TLS警告:在
my.ini
文件中指定使用TLSv1.2或更高版本。自簽名證書警告:測試環境中可以忽略,生產環境中建議使用受信任的CA證書。
5. 運行數據庫
mysqld --console
6. 修改用戶名密碼
?首先你需要運行起來mysql,然后以管理員身份新開一個命令行,用root用戶登錄到MySQL。打開命令提示符(cmd),并輸入以下命令:
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
執行完上述命令后,刷新權限以使更改生效
FLUSH PRIVILEGES;
退出exit
EXIT;
7. 停止MySQL服務器
net stop MySQL
8. 以安全模式啟動MySQL服務器:
以安全模式啟動MySQL服務器(使用 --skip-grant-tables
選項)通常在你無法正常連接到MySQL服務器或需要重置root用戶密碼的情況下使用。
1,在命令提示符中,導航到MySQL的安裝目錄下的bin
目錄,例如:
cd D:\Program\mysql-5.7.44-win32\bin
2,使用 --skip-grant-tables
和 --skip-networking
選項啟動MySQL服務器:
mysqld --skip-grant-tables --skip-networking