Windows?Server?2019部署MySQL?8完整步驟教程
1. 前言
本教程旨在指導(dǎo)用戶(hù)在Windows Server 2019操作系統(tǒng)上部署MySQL 8數(shù)據(jù)庫(kù)。MySQL是世界上最流行的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,廣泛應(yīng)用于各種規(guī)模的應(yīng)用場(chǎng)景。
1.1 適用環(huán)境
- Windows Server 2019 標(biāo)準(zhǔn)版/數(shù)據(jù)中心版
- 至少2GB內(nèi)存(建議4GB以上)
- 至少10GB可用磁盤(pán)空間
- 網(wǎng)絡(luò)連接正常
1.2 MySQL 8特性
- 性能提升:新的查詢(xún)優(yōu)化器、索引增強(qiáng)
- 安全性增強(qiáng):默認(rèn)使用SHA-256密碼認(rèn)證、角色管理
- 開(kāi)發(fā)功能:窗口函數(shù)、JSON支持增強(qiáng)、通用表表達(dá)式
- 高可用性:InnoDB集群、組復(fù)制改進(jìn)
- 管理工具:MySQL Workbench增強(qiáng)、性能模式
2. 系統(tǒng)環(huán)境準(zhǔn)備
2.1 系統(tǒng)更新
- 打開(kāi)服務(wù)器管理器
- 點(diǎn)擊本地服務(wù)器
- 點(diǎn)擊Windows Update右側(cè)的檢查更新
- 安裝所有可用更新,然后重啟服務(wù)器
2.2 關(guān)閉或配置Windows Defender防火墻
- 打開(kāi)服務(wù)器管理器
- 點(diǎn)擊本地服務(wù)器
- 點(diǎn)擊Windows Defender防火墻右側(cè)的啟用或禁用
- 如需啟用防火墻,后續(xù)需要配置允許MySQL端口通過(guò)
3. MySQL 8安裝
3.1 下載安裝程序
- 訪(fǎng)問(wèn)MySQL官方下載頁(yè)面:https://dev.mysql.com/downloads/mysql/
- 選擇MySQL Community Server 8.0
- 選擇Windows (x86, 64-bit), ZIP Archive
- 點(diǎn)擊Download按鈕
- 選擇**No thanks, just start my download.**直接下載
3.2 解壓安裝包
- 將下載的ZIP文件解壓到安裝目錄,建議路徑:
d:\Program Files\MySQL - 解壓后目錄結(jié)構(gòu)示例:
d:\Program Files\MySQL\mysql-8.0.33-winx64 - 重命名目錄為更簡(jiǎn)潔的名稱(chēng)(可選):
d:\Program Files\MySQL\MySQL Server 8.0
3.3 配置MySQL環(huán)境變量
- 右鍵點(diǎn)擊此電腦,選擇屬性
- 點(diǎn)擊高級(jí)系統(tǒng)設(shè)置
- 點(diǎn)擊環(huán)境變量
- 在系統(tǒng)變量中找到Path,點(diǎn)擊編輯
- 點(diǎn)擊新建,添加MySQL的bin目錄路徑:
d:\Program Files\MySQL\MySQL Server 8.0\bin - 點(diǎn)擊確定保存設(shè)置
3.4 創(chuàng)建配置文件
- 在MySQL安裝目錄下創(chuàng)建
my.ini配置文件 - 編輯
my.ini文件,添加以下內(nèi)容:
[mysqld] # 設(shè)置3306端口 port=3306 # 設(shè)置mysql的安裝目錄 basedir=d:\Program Files\MySQL\MySQL Server 8.0 # 設(shè)置mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄 datadir=d:\Program Files\MySQL\MySQL Server 8.0\Data # 允許最大連接數(shù) max_connections=100 # 允許連接失敗的次數(shù)。這是為了防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫(kù)系統(tǒng) max_connect_errors=10 # 服務(wù)端使用的字符集默認(rèn)為UTF8 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 default-storage-engine=INNODB # 默認(rèn)使用"mysql_native_password"插件認(rèn)證 default_authentication_plugin=mysql_native_password [mysql] # 設(shè)置mysql客戶(hù)端默認(rèn)字符集 default-character-set=utf8mb4 [client] # 設(shè)置mysql客戶(hù)端連接服務(wù)端時(shí)默認(rèn)使用的端口 port=3306 default-character-set=utf8mb4
3.5 初始化MySQL
以管理員身份打開(kāi)命令提示符
切換到MySQL的bin目錄:
cd "d:\Program Files\MySQL\MySQL Server 8.0\bin"
執(zhí)行初始化命令:
mysqld --initialize --console
初始化完成后,記錄輸出中的臨時(shí)密碼(用于首次登錄):
[Server] A temporary password is generated for root@localhost: xxxxxxxx
3.6 安裝MySQL服務(wù)
執(zhí)行服務(wù)安裝命令:
mysqld --install MySQL80
安裝成功會(huì)提示:
Service successfully installed.
3.7 啟動(dòng)MySQL服務(wù)
執(zhí)行啟動(dòng)命令:
net start MySQL80
啟動(dòng)成功會(huì)提示:
The MySQL80 service was started successfully.
4. MySQL基本配置
4.1 登錄MySQL
使用臨時(shí)密碼登錄MySQL:
mysql -u root -p
輸入初始化時(shí)記錄的臨時(shí)密碼
4.2 修改root密碼
登錄成功后,執(zhí)行修改密碼命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourNewPassword123!';
刷新權(quán)限:
FLUSH PRIVILEGES;
4.3 創(chuàng)建新用戶(hù)
創(chuàng)建新用戶(hù)并設(shè)置密碼:
CREATE USER 'myuser'@'%' IDENTIFIED BY 'MyPassword123!';
授予用戶(hù)所有權(quán)限:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
刷新權(quán)限:
FLUSH PRIVILEGES;
4.4 創(chuàng)建數(shù)據(jù)庫(kù)
創(chuàng)建數(shù)據(jù)庫(kù):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
查看數(shù)據(jù)庫(kù):
SHOW DATABASES;
4.5 退出MySQL
EXIT;
5. 配置遠(yuǎn)程訪(fǎng)問(wèn)
5.1 配置MySQL允許遠(yuǎn)程連接
登錄MySQL:
mysql -u root -p
設(shè)置root用戶(hù)允許遠(yuǎn)程連接:
UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost';
刷新權(quán)限:
FLUSH PRIVILEGES;
退出MySQL:
EXIT;
5.2 配置Windows防火墻
- 打開(kāi)Windows Defender防火墻
- 點(diǎn)擊高級(jí)設(shè)置
- 選擇入站規(guī)則
- 點(diǎn)擊新建規(guī)則…
- 規(guī)則類(lèi)型:選擇端口,點(diǎn)擊下一步
- 協(xié)議和端口:選擇TCP,輸入特定本地端口為3306,點(diǎn)擊下一步
- 操作:選擇允許連接,點(diǎn)擊下一步
- 配置文件:選擇適用的網(wǎng)絡(luò)配置文件,點(diǎn)擊下一步
- 名稱(chēng):輸入規(guī)則名稱(chēng)(如:MySQL 3306),點(diǎn)擊完成
5.3 測(cè)試遠(yuǎn)程連接
- 在遠(yuǎn)程計(jì)算機(jī)上安裝MySQL客戶(hù)端或使用MySQL Workbench
- 連接到目標(biāo)服務(wù)器:
- Hostname: Windows Server 2019的IP地址
- Port: 3306
- Username: root或創(chuàng)建的新用戶(hù)
- Password: 對(duì)應(yīng)的密碼
6. 安裝MySQL Workbench(可選)
6.1 下載MySQL Workbench
- 訪(fǎng)問(wèn)MySQL Workbench下載頁(yè)面:https://dev.mysql.com/downloads/workbench/
- 選擇Windows (x86, 64-bit)
- 點(diǎn)擊Download按鈕
- 選擇**No thanks, just start my download.**直接下載
6.2 安裝MySQL Workbench
- 雙擊運(yùn)行下載的安裝程序
- 按照安裝向?qū)瓿砂惭b
6.3 使用MySQL Workbench
- 打開(kāi)MySQL Workbench
- 點(diǎn)擊**+**號(hào)添加新連接
- 輸入連接信息:
- Connection Name: 連接名稱(chēng)(如:Local MySQL)
- Hostname: localhost或127.0.0.1
- Port: 3306
- Username: root
- Password: 點(diǎn)擊**Store in Vault…**保存密碼
- 點(diǎn)擊Test Connection測(cè)試連接
- 點(diǎn)擊OK保存連接
7. MySQL服務(wù)管理
7.1 啟動(dòng)/停止/重啟MySQL服務(wù)
使用命令提示符(管理員身份):
# 啟動(dòng)服務(wù) net start MySQL80 # 停止服務(wù) net stop MySQL80 # 重啟服務(wù) net stop MySQL80 && net start MySQL80
使用服務(wù)管理工具:
- 按下Win + R,輸入
services.msc,點(diǎn)擊確定 - 找到MySQL80服務(wù)
- 右鍵點(diǎn)擊可選擇啟動(dòng)、停止、重啟等操作
- 按下Win + R,輸入
7.2 設(shè)置MySQL服務(wù)開(kāi)機(jī)自啟
- 打開(kāi)服務(wù)管理工具
- 找到MySQL80服務(wù)
- 右鍵點(diǎn)擊,選擇屬性
- 在啟動(dòng)類(lèi)型下拉菜單中選擇自動(dòng)
- 點(diǎn)擊確定保存設(shè)置
8. 數(shù)據(jù)備份與恢復(fù)
8.1 使用mysqldump命令備份
- 打開(kāi)命令提示符
- 執(zhí)行備份命令:
# 備份所有數(shù)據(jù)庫(kù) mysqldump -u root -p --all-databases > C:\backup\mysql_all_backup.sql # 備份指定數(shù)據(jù)庫(kù) mysqldump -u root -p mydatabase > C:\backup\mydatabase_backup.sql # 備份指定數(shù)據(jù)庫(kù)的特定表 mysqldump -u root -p mydatabase mytable > C:\backup\mydatabase_mytable_backup.sql
8.2 使用mysql命令恢復(fù)
- 確保目標(biāo)數(shù)據(jù)庫(kù)已創(chuàng)建(如果恢復(fù)單個(gè)數(shù)據(jù)庫(kù))
- 執(zhí)行恢復(fù)命令:
# 恢復(fù)所有數(shù)據(jù)庫(kù) mysql -u root -p < C:\backup\mysql_all_backup.sql # 恢復(fù)指定數(shù)據(jù)庫(kù) mysql -u root -p mydatabase < C:\backup\mydatabase_backup.sql
8.3 使用MySQL Workbench備份與恢復(fù)
8.3.1 備份數(shù)據(jù)庫(kù)
- 打開(kāi)MySQL Workbench
- 連接到MySQL服務(wù)器
- 點(diǎn)擊Server菜單,選擇Data Export
- 選擇要備份的數(shù)據(jù)庫(kù)
- 選擇備份方式(導(dǎo)出到轉(zhuǎn)儲(chǔ)文件或自我包含文件)
- 設(shè)置備份文件路徑
- 點(diǎn)擊Start Export開(kāi)始備份
8.3.2 恢復(fù)數(shù)據(jù)庫(kù)
- 打開(kāi)MySQL Workbench
- 連接到MySQL服務(wù)器
- 點(diǎn)擊Server菜單,選擇Data Import
- 選擇導(dǎo)入源(從轉(zhuǎn)儲(chǔ)文件導(dǎo)入)
- 設(shè)置備份文件路徑
- 選擇目標(biāo)數(shù)據(jù)庫(kù)
- 點(diǎn)擊Start Import開(kāi)始恢復(fù)
8.4 自動(dòng)備份腳本
創(chuàng)建PowerShell備份腳本
mysql_backup.ps1:# MySQL備份腳本 # 配置參數(shù) $MYSQL_BIN = "d:\Program Files\MySQL\MySQL Server 8.0\bin" $BACKUP_DIR = "d:\backup" $DB_USER = "root" $DB_PASS = "YourPassword" $DATE = Get-Date -Format "yyyyMMdd_HHmmss" # 創(chuàng)建備份目錄 if (-not (Test-Path $BACKUP_DIR)) { New-Item -ItemType Directory -Path $BACKUP_DIR | Out-Null } # 備份所有數(shù)據(jù)庫(kù) $BACKUP_FILE = "$BACKUP_DIR\mysql_all_backup_$DATE.sql" & "$MYSQL_BIN\mysqldump.exe" -u $DB_USER -p$DB_PASS --all-databases > $BACKUP_FILE # 刪除7天前的備份 Get-ChildItem -Path $BACKUP_DIR -Filter "*.sql" | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-7)} | Remove-Item Write-Host "MySQL備份完成:$BACKUP_FILE"創(chuàng)建Windows任務(wù)計(jì)劃程序:
- 打開(kāi)任務(wù)計(jì)劃程序
- 點(diǎn)擊創(chuàng)建基本任務(wù)…
- 輸入任務(wù)名稱(chēng)(如:MySQL自動(dòng)備份)
- 設(shè)置觸發(fā)器(如:每天凌晨2點(diǎn))
- 選擇啟動(dòng)程序作為操作
- 瀏覽選擇
powershell.exe - 在添加參數(shù)中輸入:
-ExecutionPolicy Bypass -File "C:\scripts\mysql_backup.ps1" - 完成任務(wù)創(chuàng)建
9. MySQL性能優(yōu)化
9.1 調(diào)整內(nèi)存配置
- 打開(kāi)
my.ini配置文件 - 修改以下內(nèi)存相關(guān)參數(shù):
[mysqld] # 緩沖池大?。ńㄗh為系統(tǒng)內(nèi)存的50-70%) innodb_buffer_pool_size=2G # 緩沖池實(shí)例數(shù)量(建議與CPU核心數(shù)相同) innodb_buffer_pool_instances=4 # 日志緩沖區(qū)大小 innodb_log_buffer_size=16M # 每個(gè)連接使用的緩沖區(qū)大小 sort_buffer_size=4M read_buffer_size=4M read_rnd_buffer_size=8M join_buffer_size=4M
9.2 調(diào)整連接配置
[mysqld] # 最大連接數(shù) max_connections=200 # 連接超時(shí)時(shí)間(秒) wait_timeout=28800 interactive_timeout=28800
9.3 調(diào)整InnoDB配置
[mysqld] # 日志文件大小 innodb_log_file_size=512M # 日志文件數(shù)量 innodb_log_files_in_group=2 # 檢查點(diǎn)完成目標(biāo) innodb_checkpoint_completion_target=0.9 # 并發(fā)線(xiàn)程數(shù) innodb_thread_concurrency=16
9.4 重啟MySQL服務(wù)使配置生效
net stop MySQL80 && net start MySQL80
10. 常見(jiàn)問(wèn)題與故障排除
10.1 MySQL服務(wù)無(wú)法啟動(dòng)
- 檢查
my.ini配置文件是否存在語(yǔ)法錯(cuò)誤 - 檢查數(shù)據(jù)目錄權(quán)限是否正確
- 查看MySQL錯(cuò)誤日志:
d:\Program Files\MySQL\MySQL Server 8.0\Data\hostname.err - 嘗試重新初始化MySQL:
mysqld --remove MySQL80 rmdir /s /q "d:\Program Files\MySQL\MySQL Server 8.0\Data" mysqld --initialize --console mysqld --install MySQL80 net start MySQL80
10.2 忘記root密碼
停止MySQL服務(wù):
net stop MySQL80
以安全模式啟動(dòng)MySQL:
mysqld --console --skip-grant-tables --shared-memory
重新打開(kāi)一個(gè)命令提示符,登錄MySQL:
mysql -u root
修改root密碼:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
關(guān)閉安全模式的MySQL進(jìn)程,重新啟動(dòng)服務(wù):
net start MySQL80
10.3 無(wú)法遠(yuǎn)程連接MySQL
- 檢查MySQL服務(wù)是否正在運(yùn)行
- 檢查MySQL配置是否允許遠(yuǎn)程連接
- 檢查Windows防火墻是否允許3306端口通過(guò)
- 檢查網(wǎng)絡(luò)連接是否正常
- 嘗試使用telnet測(cè)試端口連通性:
telnet 192.168.1.100 3306
10.4 數(shù)據(jù)庫(kù)連接過(guò)多
檢查當(dāng)前連接數(shù):
SHOW PROCESSLIST;
終止長(zhǎng)時(shí)間運(yùn)行的查詢(xún):
KILL <process_id>;
考慮增加
max_connections參數(shù)
11. 總結(jié)
本教程詳細(xì)介紹了在Windows Server 2019操作系統(tǒng)上部署MySQL 8數(shù)據(jù)庫(kù)的完整過(guò)程,包括:
- 系統(tǒng)環(huán)境準(zhǔn)備和更新
- MySQL 8的下載和安裝(ZIP方式)
- MySQL環(huán)境變量配置
- 配置文件創(chuàng)建和修改
- 數(shù)據(jù)庫(kù)初始化和服務(wù)安裝
- 基本的數(shù)據(jù)庫(kù)管理操作
- 遠(yuǎn)程訪(fǎng)問(wèn)配置
- MySQL Workbench的安裝和使用
- 數(shù)據(jù)備份與恢復(fù)方法
- 服務(wù)管理和性能優(yōu)化
- 常見(jiàn)問(wèn)題與故障排除
通過(guò)本教程,用戶(hù)可以在Windows Server 2019環(huán)境下成功部署和管理MySQL 8數(shù)據(jù)庫(kù),滿(mǎn)足各種應(yīng)用場(chǎng)景的需求。MySQL作為一款成熟的開(kāi)源數(shù)據(jù)庫(kù),在Windows Server 2019環(huán)境下同樣能夠提供穩(wěn)定可靠的服務(wù)。
12. 參考資料
到此這篇關(guān)于Windows Server 2019部署MySQL 8完整步驟教程的文章就介紹到這了,更多相關(guān)Windows Server部署MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL如何從數(shù)據(jù)庫(kù)中刪除表中所有數(shù)據(jù)
這篇文章主要介紹了MySQL如何從數(shù)據(jù)庫(kù)中刪除表中所有數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
Centos7.5安裝mysql5.7.24二進(jìn)制包方式部署
這篇文章主要介紹了Centos7.5安裝mysql5.7.24二進(jìn)制包方式部署,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-12-12
MySQL無(wú)法存儲(chǔ)Emoji表情問(wèn)題的解決方法分析
這篇文章主要介紹了MySQL無(wú)法存儲(chǔ)Emoji表情問(wèn)題的解決方法,結(jié)合實(shí)例形式分析了存儲(chǔ)Emoji表情報(bào)錯(cuò)的原因及相應(yīng)的解決方法,需要的朋友可以參考下2018-07-07
CentOS系統(tǒng)中安裝MySQL和開(kāi)啟MySQL遠(yuǎn)程訪(fǎng)問(wèn)的方法
這篇文章主要介紹了CentOS系統(tǒng)中安裝MySQL和開(kāi)啟MySQL遠(yuǎn)程訪(fǎng)問(wèn)的方法,包括MySQL的隨機(jī)啟動(dòng)等操作的介紹,需要的朋友可以參考下2016-02-02
MySQL系統(tǒng)庫(kù)之performance_schema的實(shí)現(xiàn)
performance_schema用于收集和存儲(chǔ)關(guān)于數(shù)據(jù)庫(kù)性能和資源利用情況的信息,本文主要介紹了MySQL系統(tǒng)庫(kù)之performance_schema的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11

