部署)
1. 為什么我堅(jiān)持用綠色版MySQL 5.7如果你在網(wǎng)上搜過MySQL安裝教程大概率會(huì)看到兩種主流方案一種是下載官方MSI安裝包一路“下一步”到底另一種是下載ZIP壓縮包也就是所謂的“綠色版”或“免安裝版”。我自己的開發(fā)環(huán)境和服務(wù)器上幾乎無一例外地選擇了后者。原因很簡單可控、干凈、可移植。用MSI安裝包系統(tǒng)會(huì)幫你處理注冊表、服務(wù)安裝、路徑配置等一系列事情看似省心實(shí)則埋下不少隱患。比如你想在一臺(tái)機(jī)器上同時(shí)跑MySQL 5.7和8.0做版本對比測試用安裝包就很容易打架卸載時(shí)也常常清理不干凈。而綠色版則完全不同它本質(zhì)上就是一個(gè)解壓即用的軟件包所有文件都集中在你指定的目錄下。你想把它放D盤、E盤甚至U盤里帶著走都完全沒問題。刪除時(shí)直接刪掉整個(gè)文件夾就行系統(tǒng)里幾乎不留任何垃圾。這對于需要頻繁搭建測試環(huán)境、或者有“潔癖”的開發(fā)者來說是最高效的選擇。今天要聊的MySQL 5.7雖然已經(jīng)不是最新的版本但在很多生產(chǎn)環(huán)境和遺留系統(tǒng)中依然被廣泛使用。它的穩(wěn)定性經(jīng)過了時(shí)間的考驗(yàn)生態(tài)兼容性也極好。通過綠色版的方式安裝它不僅能讓你徹底掌握MySQL的目錄結(jié)構(gòu)和配置邏輯更能為后續(xù)的運(yùn)維排錯(cuò)打下堅(jiān)實(shí)的基礎(chǔ)。接下來我會(huì)用一個(gè)最詳細(xì)的、圖文并茂的流程帶你從零開始搞定MySQL 5.7綠色版的安裝、配置與啟動(dòng)。整個(gè)過程我會(huì)穿插我這些年踩過的坑和總結(jié)的技巧保證你一次成功。2. 準(zhǔn)備工作下載與解壓的關(guān)鍵細(xì)節(jié)萬事開頭準(zhǔn)安裝的第一步不是直接運(yùn)行而是做好充分的準(zhǔn)備。這里有幾個(gè)細(xì)節(jié)直接關(guān)系到后續(xù)步驟能否順利進(jìn)行。2.1 獲取正確的安裝包首先你需要前往MySQL官方網(wǎng)站的下載頁面。這里有個(gè)小陷阱Oracle會(huì)把最新的MySQL 8.0版本放在最顯眼的位置。我們需要找到歷史版本的下載入口。通常在頁面底部或“Archives”部分可以找到MySQL 5.7的下載鏈接。選擇版本時(shí)請認(rèn)準(zhǔn)Windows (x86, 64-bit), ZIP Archive這個(gè)選項(xiàng)。它的命名通常類似mysql-5.7.44-winx64.zip。這里特別強(qiáng)調(diào)“64-bit”因?yàn)楝F(xiàn)在主流系統(tǒng)都是64位。不要下載成“mysql-5.7.44-winx64.msi”那是我們不需要的安裝包。下載完成后你會(huì)得到一個(gè)ZIP壓縮包。我建議你專門在非系統(tǒng)盤比如D盤或E盤創(chuàng)建一個(gè)用于存放開發(fā)環(huán)境的目錄例如D:\DevTools。將ZIP包解壓到這個(gè)目錄下。解壓后你會(huì)得到一個(gè)名為mysql-5.7.44-winx64的文件夾。為了方便后續(xù)在命令行中操作我強(qiáng)烈建議你將這個(gè)文件夾改名為mysql-5.7。短路徑名能避免很多因路徑空格或過長導(dǎo)致的莫名錯(cuò)誤。2.2 理解綠色版的目錄結(jié)構(gòu)在啟動(dòng)之前花一分鐘了解一下解壓后的目錄結(jié)構(gòu)這對理解MySQL和后續(xù)排錯(cuò)至關(guān)重要。進(jìn)入mysql-5.7目錄你會(huì)看到以下核心文件夾和文件bin\這是最重要的目錄里面存放了所有可執(zhí)行文件。例如mysqld.exeMySQL服務(wù)端守護(hù)進(jìn)程、mysql.exe命令行客戶端、mysqladmin.exe管理工具等。我們后續(xù)的操作大部分都在這個(gè)目錄下進(jìn)行。data\初始狀態(tài)下這個(gè)目錄是不存在的它是MySQL存放所有數(shù)據(jù)庫數(shù)據(jù)文件、日志文件如ibdata1, ib_logfile0的地方。這個(gè)目錄將由我們稍后通過命令初始化自動(dòng)生成。my-default.ini這是一個(gè)配置文件的示例模板。它本身不會(huì)被MySQL讀取。我們的任務(wù)是基于它創(chuàng)建我們自己的my.ini配置文件。share\存放字符集、語言文件等。docs\官方文檔。lib\依賴的庫文件。這里有一個(gè)非常重要的經(jīng)驗(yàn)確保你的Windows登錄用戶名是英文的。如果你的用戶名是中文比如“張三”那么你的用戶目錄路徑會(huì)是C:\Users\張三。在一些舊版本或特定配置下MySQL在初始化或運(yùn)行過程中可能會(huì)因?yàn)闊o法正確處理中文字符的路徑而導(dǎo)致失敗。雖然MySQL 5.7對此的兼容性已經(jīng)好了很多但為了絕對穩(wěn)妥尤其是在配置一些日志文件路徑時(shí)使用英文用戶名可以規(guī)避掉100%的路徑編碼問題。如果已經(jīng)是中文用戶名一個(gè)變通辦法是在配置文件中將所有涉及路徑的配置都設(shè)置為絕對路徑并且確保路徑中不含中文和空格。3. 核心配置手把手創(chuàng)建與解讀my.ini綠色版安裝的核心靈魂就在于my.ini這個(gè)配置文件。它告訴MySQL服務(wù)端你的數(shù)據(jù)存哪里、用什么端口、內(nèi)存怎么分配等等。很多安裝失敗的問題都源于這個(gè)文件配置有誤。3.1 創(chuàng)建my.ini配置文件在mysql-5.7目錄的根目錄下也就是和bin文件夾同級(jí)的位置新建一個(gè)文本文檔。將其重命名為my.ini。注意如果系統(tǒng)隱藏了已知文件類型的擴(kuò)展名你可能會(huì)看到一個(gè)名為my.ini.txt的文件這是不對的。你需要打開“文件資源管理器”的“查看”選項(xiàng)勾選“文件擴(kuò)展名”確保你修改的是完整的文件名。用記事本或任何你喜歡的文本編輯器如VS Code、Notepad打開這個(gè)新建的my.ini文件。將以下配置內(nèi)容粘貼進(jìn)去。我會(huì)逐段解釋關(guān)鍵配置項(xiàng)的含義。[mysqld] # 設(shè)置MySQL的安裝目錄即你解壓后文件夾的絕對路徑 basedir D:/DevTools/mysql-5.7 # 設(shè)置MySQL數(shù)據(jù)庫的數(shù)據(jù)存放目錄初始不存在初始化后會(huì)生成 datadir D:/DevTools/mysql-5.7/data # 設(shè)置服務(wù)端使用的端口默認(rèn)3306如果被占用可以修改 port 3306 # 允許最大連接數(shù) max_connections 200 # 服務(wù)端使用的字符集默認(rèn)為UTF8 character-set-server utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 default-storage-engine INNODB # 設(shè)置SQL模式去掉 ONLY_FULL_GROUP_BY 等嚴(yán)格限制兼容性更好 sql_mode STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # 跳過表名大小寫敏感Linux系統(tǒng)默認(rèn)敏感Windows默認(rèn)不敏感顯式聲明避免混淆 lower_case_table_names 1 [mysql] # 設(shè)置mysql客戶端默認(rèn)字符集 default-character-set utf8mb4 [client] # 設(shè)置mysql客戶端連接服務(wù)端時(shí)默認(rèn)使用的端口和字符集 port 3306 default-character-set utf8mb43.2 關(guān)鍵配置項(xiàng)深度解讀為什么這么配置我們來拆解幾個(gè)最容易出問題的地方路徑分隔符注意在my.ini中我們使用的是正斜杠/而不是Windows傳統(tǒng)的反斜杠\。這是因?yàn)镸ySQL配置文件的語法更遵循Unix風(fēng)格使用正斜杠可以確保在所有操作系統(tǒng)上都有更好的兼容性。當(dāng)然使用雙反斜杠\\轉(zhuǎn)義通常也可以但直接用/是最穩(wěn)妥、最推薦的做法。basedir和datadir這兩個(gè)是必須正確配置的絕對路徑。basedir指向你的MySQL程序根目錄datadir指向你希望存放數(shù)據(jù)庫文件的地方。我強(qiáng)烈建議將datadir設(shè)置為basedir下的一個(gè)子目錄如/data這樣管理起來非常清晰備份和遷移時(shí)也方便。請務(wù)必將示例中的D:/DevTools/mysql-5.7替換成你自己的實(shí)際路徑。字符集utf8mb4在MySQL 5.7中我們直接配置utf8mb4而不是utf8。這是因?yàn)镸ySQL中的utf8編碼最大只支持3個(gè)字節(jié)無法存儲(chǔ)完整的4字節(jié)UTF-8字符如一些emoji表情。utf8mb4才是真正的、完整的UTF-8編碼。從兼容性和未來性考慮這是現(xiàn)在的標(biāo)準(zhǔn)做法。sql_mode這個(gè)配置項(xiàng)控制著MySQL執(zhí)行SQL語句的嚴(yán)格程度。我提供的這個(gè)值是一個(gè)比較通用的、兼容性較好的設(shè)置。它移除了ONLY_FULL_GROUP_BY模式這樣在一些GROUP BY查詢時(shí)不會(huì)報(bào)錯(cuò)同時(shí)保留了一些基本的數(shù)據(jù)校驗(yàn)如禁止無效日期。對于開發(fā)和測試環(huán)境這個(gè)配置能減少很多不必要的麻煩。在生產(chǎn)環(huán)境你可能需要根據(jù)應(yīng)用需求調(diào)整得更嚴(yán)格。lower_case_table_names1這個(gè)配置意味著表名和數(shù)據(jù)庫名在存儲(chǔ)和比較時(shí)都會(huì)被轉(zhuǎn)換為小寫。在Windows系統(tǒng)上文件系統(tǒng)本身不區(qū)分大小寫所以這個(gè)設(shè)置通常沒問題。但如果你未來可能將數(shù)據(jù)庫遷移到Linux服務(wù)器Linux默認(rèn)區(qū)分大小寫提前統(tǒng)一設(shè)置為1可以避免潛在的“表不存在”的報(bào)錯(cuò)。這是一個(gè)重要的跨平臺(tái)兼容性設(shè)置。注意修改my.ini后必須重啟MySQL服務(wù)新的配置才會(huì)生效。4. 初始化數(shù)據(jù)目錄與安裝Windows服務(wù)配置好my.ini后MySQL仍然無法啟動(dòng)因?yàn)樗€不知道數(shù)據(jù)目錄data在哪里里面也空空如也。我們需要通過命令行工具來初始化數(shù)據(jù)目錄并可選地將MySQL安裝為Windows服務(wù)實(shí)現(xiàn)開機(jī)自啟。4.1 以管理員身份運(yùn)行CMD這是至關(guān)重要的一步因?yàn)槌跏蓟僮骱桶惭b系統(tǒng)服務(wù)都需要較高的權(quán)限。在Windows搜索框輸入cmd在出現(xiàn)的“命令提示符”上右鍵選擇“以管理員身份運(yùn)行”。4.2 切換到MySQL的bin目錄在打開的管理員CMD中使用cd命令切換到你MySQL的bin目錄下。假設(shè)你的路徑是D:\DevTools\mysql-5.7則命令如下d: cd D:\DevTools\mysql-5.7\bin4.3 初始化數(shù)據(jù)目錄關(guān)鍵步驟執(zhí)行初始化命令。在MySQL 5.7中我們使用mysqld --initialize-insecure這個(gè)命令。mysqld --initialize-insecure --usermysql讓我們分解這個(gè)命令mysqldMySQL服務(wù)端主程序。--initialize-insecure這個(gè)參數(shù)是初始化的核心。--initialize表示初始化數(shù)據(jù)目錄。-insecure選項(xiàng)表示初始化完成后MySQL的root用戶將沒有密碼。這對于首次安裝和本地開發(fā)非常方便因?yàn)槲覀兊卿浐笤僭O(shè)密碼即可。如果不用-insecureMySQL會(huì)為root用戶生成一個(gè)隨機(jī)的初始密碼并輸出在錯(cuò)誤日志里你需要去日志里找過程更繁瑣。--usermysql指定運(yùn)行MySQL服務(wù)的用戶身份。在Windows上這個(gè)參數(shù)不是必須的但加上它是一個(gè)好習(xí)慣保持了與Linux配置的一致性。執(zhí)行這個(gè)命令后如果沒有任何錯(cuò)誤輸出通常只有光標(biāo)閃爍一下然后返回提示符就說明成功了。此時(shí)你再回到mysql-5.7目錄下會(huì)發(fā)現(xiàn)多出了一個(gè)data文件夾里面已經(jīng)生成了MySQL系統(tǒng)數(shù)據(jù)庫如mysql,sys,performance_schema等的文件結(jié)構(gòu)。踩坑提示如果這一步報(bào)錯(cuò)最常見的原因有兩個(gè)一是my.ini文件中的路徑配置錯(cuò)誤請仔細(xì)檢查basedir和datadir的路徑是否正確、文件夾是否存在basedir必須存在datadir所在的上層目錄必須存在。二是沒有以管理員身份運(yùn)行CMD。4.4 將MySQL安裝為Windows服務(wù)推薦雖然綠色版可以不安裝服務(wù)每次手動(dòng)啟動(dòng)mysqld但作為開發(fā)環(huán)境安裝成服務(wù)后可以自動(dòng)啟動(dòng)管理起來更方便通過net start/stop mysql或服務(wù)管理器。mysqld --install MySQL57 --defaults-fileD:\DevTools\mysql-5.7\my.ini--install MySQL57將MySQL安裝為一個(gè)名為“MySQL57”的Windows服務(wù)。你可以把“MySQL57”改成任何你喜歡的名字比如“MySQL5.7”。--defaults-file這個(gè)參數(shù)極其重要它明確指定了服務(wù)啟動(dòng)時(shí)應(yīng)該讀取的配置文件路徑。如果不指定MySQL服務(wù)可能會(huì)去它默認(rèn)的位置如Windows目錄或C盤根目錄找my.ini導(dǎo)致配置不生效。請確保這里的路徑是你的my.ini文件的絕對路徑。如果看到“Service successfully installed.”的提示說明服務(wù)安裝成功。你可以在“運(yùn)行”中輸入services.msc打開服務(wù)管理器在列表中找到“MySQL57”服務(wù)。5. 啟動(dòng)服務(wù)、修改密碼與首次登錄服務(wù)安裝好后我們終于可以啟動(dòng)MySQL并使用了。5.1 啟動(dòng)MySQL服務(wù)在管理員CMD中使用以下命令啟動(dòng)服務(wù)net start MySQL57如果啟動(dòng)成功你會(huì)看到“MySQL57 服務(wù)正在啟動(dòng) .. MySQL57 服務(wù)已經(jīng)啟動(dòng)成功?!钡奶崾尽H绻麊?dòng)失敗提示“服務(wù)沒有響應(yīng)控制功能”或錯(cuò)誤代碼1067這是最常見的啟動(dòng)錯(cuò)誤。別慌問題幾乎100%出在my.ini配置文件上。請按以下步驟排查再次用記事本打開my.ini檢查basedir和datadir的路徑是否正確無誤確保使用的是正斜杠。檢查datadir指向的data文件夾是否存在并且是上一步初始化生成的。查看Windows的“事件查看器”在運(yùn)行中輸入eventvwr.msc進(jìn)入“Windows 日志” - “應(yīng)用程序”查找最近的錯(cuò)誤日志通常MySQL啟動(dòng)失敗的具體原因會(huì)記錄在這里比如某個(gè)配置項(xiàng)語法錯(cuò)誤。5.2 修改root用戶密碼服務(wù)啟動(dòng)后由于我們使用了--initialize-insecure初始化root用戶沒有密碼。我們需要先登錄然后為其設(shè)置一個(gè)強(qiáng)密碼。首先使用MySQL客戶端連接本地服務(wù)器mysql -u root -p在提示輸入密碼時(shí)直接按回車因?yàn)槌跏济艽a為空。連接成功后你會(huì)看到MySQL的命令行提示符mysql?,F(xiàn)在執(zhí)行以下SQL命令來修改root用戶的密碼這里以新密碼YourNewPassword123!為例請務(wù)必?fù)Q成你自己的復(fù)雜密碼ALTER USER rootlocalhost IDENTIFIED BY YourNewPassword123!;執(zhí)行成功后會(huì)看到“Query OK”的提示。安全建議出于安全考慮在生產(chǎn)環(huán)境或可被網(wǎng)絡(luò)訪問的測試環(huán)境還應(yīng)該考慮刪除匿名用戶、移除測試數(shù)據(jù)庫等??梢栽贛ySQL命令行中執(zhí)行DELETE FROM mysql.user WHERE User; DROP DATABASE IF EXISTS test; DELETE FROM mysql.db WHERE Dbtest OR Dbtest\\_%; FLUSH PRIVILEGES;5.3 驗(yàn)證安裝與基礎(chǔ)操作修改密碼后退出重新登錄驗(yàn)證新密碼是否生效exit mysql -u root -p輸入你剛設(shè)置的新密碼應(yīng)該能成功登錄。登錄后可以執(zhí)行幾個(gè)簡單命令驗(yàn)證安裝-- 查看當(dāng)前MySQL版本 SELECT VERSION(); -- 顯示所有數(shù)據(jù)庫 SHOW DATABASES; -- 使用mysql系統(tǒng)數(shù)據(jù)庫 USE mysql; -- 查看用戶表 SELECT Host, User FROM user;如果這些命令都能正常執(zhí)行并返回結(jié)果那么恭喜你MySQL 5.7綠色版已經(jīng)成功安裝并配置完畢6. 連接工具推薦與常見問題排雷雖然命令行客戶端 (mysql.exe) 功能強(qiáng)大但對于日常的數(shù)據(jù)庫管理、查詢和開發(fā)圖形化工具能極大提升效率。6.1 圖形化管理工具Navicat與DBeaverNavicat Premium這是一個(gè)非常流行且功能全面的商業(yè)軟件支持多種數(shù)據(jù)庫MySQL, PostgreSQL, SQL Server, Oracle等。它的界面直觀導(dǎo)入導(dǎo)出、數(shù)據(jù)同步、模型設(shè)計(jì)等功能都很強(qiáng)大。網(wǎng)絡(luò)上可以找到一些學(xué)習(xí)或評估版本。使用它時(shí)你只需要新建一個(gè)MySQL連接填寫主機(jī)localhost、端口3306、用戶名root和密碼即可連接。DBeaver這是一個(gè)開源免費(fèi)的通用數(shù)據(jù)庫工具基于Java開發(fā)同樣支持幾乎所有主流數(shù)據(jù)庫。社區(qū)版功能就非常強(qiáng)大完全免費(fèi)。它的界面可能不如Navicat那么精致但勝在免費(fèi)、開源且持續(xù)更新。對于不想使用商業(yè)軟件的用戶來說DBeaver是最佳選擇。無論選擇哪款工具連接的本質(zhì)都是一樣的通過TCP/IP協(xié)議本地就是localhost連接到MySQL服務(wù)監(jiān)聽的端口默認(rèn)3306并進(jìn)行身份認(rèn)證。6.2 安裝后高頻問題與解決方案即使按照教程一步步走也可能遇到一些意外情況。這里匯總幾個(gè)我遇到最多的問題“服務(wù)無法啟動(dòng)錯(cuò)誤1067”首要排查點(diǎn)my.ini配置文件。99%的問題出在這里。用記事本打開確保文件編碼是ANSI或UTF-8無BOM。有時(shí)用高級(jí)編輯器保存為UTF-8 with BOM會(huì)導(dǎo)致解析錯(cuò)誤。用系統(tǒng)記事本另存為選擇ANSI編碼最穩(wěn)妥。路徑正確且使用正斜杠(/)。沒有中文注釋導(dǎo)致解析錯(cuò)誤雖然通常支持但為安全起見可先刪除所有中文注釋試試。其次檢查data目錄的權(quán)限。確保運(yùn)行MySQL服務(wù)的賬戶通常是SYSTEM或NetworkService有對該目錄的完全控制權(quán)??梢杂益Idata文件夾 - 屬性 - 安全 - 編輯添加相應(yīng)用戶并賦予完全控制權(quán)限。最后查看錯(cuò)誤日志。錯(cuò)誤日志文件默認(rèn)在data目錄下文件名通常是你的計(jì)算機(jī)名加上.err后綴。打開它里面的錯(cuò)誤信息會(huì)非常具體。忘記root密碼怎么辦停止MySQL服務(wù)net stop MySQL57。創(chuàng)建一個(gè)文本文件如reset_password.txt里面寫入ALTER USER rootlocalhost IDENTIFIED BY YourNewPassword;使用--init-file參數(shù)和--skip-grant-tables模式啟動(dòng)MySQL這是一個(gè)繞過權(quán)限驗(yàn)證的特殊模式mysqld --defaults-fileD:\DevTools\mysql-5.7\my.ini --init-fileD:\reset_password.txt --skip-grant-tables --console此時(shí)另一個(gè)CMD窗口可以用mysql -u root無密碼登錄執(zhí)行FLUSH PRIVILEGES;后新密碼就生效了。最后關(guān)掉控制臺(tái)窗口用net start MySQL57正常啟動(dòng)服務(wù)。如何徹底卸載綠色版MySQL停止服務(wù)net stop MySQL57。刪除服務(wù)sc delete MySQL57在管理員CMD中執(zhí)行。刪除整個(gè)MySQL解壓目錄如D:\DevTools\mysql-5.7??蛇x刪除環(huán)境變量中關(guān)于MySQLPATH的設(shè)置。這樣就完全清理干凈了注冊表里基本沒有殘留。端口3306被占用在CMD中運(yùn)行netstat -ano | findstr :3306找到占用端口的進(jìn)程IDPID。打開任務(wù)管理器在“詳細(xì)信息”選項(xiàng)卡里找到對應(yīng)PID的進(jìn)程結(jié)束它?;蛘咧苯有薷膍y.ini中的port為其他未被占用的端口如3307。7. 從安裝到日常使用環(huán)境變量與基礎(chǔ)維護(hù)完成安裝和連接只是第一步要讓MySQL真正融入你的開發(fā)工作流還需要做一些便利性設(shè)置和了解基礎(chǔ)維護(hù)知識(shí)。7.1 配置環(huán)境變量可選但推薦目前我們只能在mysql-5.7\bin目錄下或者輸入完整路徑才能執(zhí)行mysql,mysqld等命令。將其添加到系統(tǒng)的PATH環(huán)境變量中就可以在任意位置使用這些命令了。右鍵“此電腦” - “屬性” - “高級(jí)系統(tǒng)設(shè)置” - “環(huán)境變量”。在“系統(tǒng)變量”區(qū)域找到并選中Path變量點(diǎn)擊“編輯”。點(diǎn)擊“新建”將你的MySQL的bin目錄的完整路徑添加進(jìn)去例如D:\DevTools\mysql-5.7\bin。點(diǎn)擊“確定”保存所有更改。完成后重新打開一個(gè)CMD窗口不需要管理員權(quán)限輸入mysql --version如果能看到版本信息說明配置成功。以后在任意目錄下都可以直接使用mysql -u root -p來連接數(shù)據(jù)庫了。7.2 基礎(chǔ)服務(wù)管理命令將MySQL作為服務(wù)安裝后管理起來非常方便啟動(dòng)服務(wù)net start MySQL57或在服務(wù)管理器中啟動(dòng)停止服務(wù)net stop MySQL57重啟服務(wù)先停止再啟動(dòng)或者有些系統(tǒng)支持net stop MySQL57 net start MySQL57查看服務(wù)狀態(tài)sc query MySQL577.3 數(shù)據(jù)目錄備份與遷移綠色版最大的優(yōu)勢之一就是數(shù)據(jù)遷移方便。你的所有數(shù)據(jù)都在datadir指定的目錄通常是data文件夾里。備份直接停止MySQL服務(wù)然后復(fù)制整個(gè)data文件夾到安全的地方即可。遷移到新機(jī)器在新機(jī)器上按照同樣的步驟安裝綠色版MySQL配置好my.ini注意修改路徑但不要執(zhí)行--initialize-insecure初始化。停止新機(jī)器上的MySQL服務(wù)如果已啟動(dòng)。將舊機(jī)器的data文件夾整體覆蓋到新機(jī)器的data目錄。啟動(dòng)新機(jī)器的MySQL服務(wù)?,F(xiàn)在你就擁有了一個(gè)和舊機(jī)器一模一樣的數(shù)據(jù)庫環(huán)境。這種方式比用mysqldump導(dǎo)出SQL再導(dǎo)入的方式在遷移大量數(shù)據(jù)時(shí)通常更快尤其是對于InnoDB存儲(chǔ)引擎。但要注意跨大版本如從5.5遷移到5.7或跨不同字節(jié)序的系統(tǒng)遷移時(shí)直接復(fù)制數(shù)據(jù)文件可能會(huì)有兼容性問題需要更謹(jǐn)慎的處理。整個(gè)過程走下來你會(huì)發(fā)現(xiàn)綠色版安裝雖然前期步驟稍多但每一步都在你的掌控之中。你清楚地知道配置文件在哪、數(shù)據(jù)存在哪、服務(wù)如何運(yùn)作。這種透明度和可控性正是專業(yè)開發(fā)者和運(yùn)維人員所追求的。下次當(dāng)你需要部署MySQL時(shí)不妨再試試這個(gè)方法相信你會(huì)更加得心應(yīng)手。