MySQL5.7 (Windows) 如何在沒有數據目錄的情況下從 zip 文件安裝?
這可能以前被問過,但我正在努力尋找答案。
從歷史上看,我總是從基於
mysql-xxx-win64.zip
文件的模板安裝 MySQL(在 Windows 上)。我基本上會1) download the zip file, 2) copy the contents to the new location, 3) add in my template ini file, 5) add in my template mysql directory (with default users) 4) install a Windows Service, 5) start MySQL
這多年來一直執行良好(5.5 及更早版本)。但是現在我開始測試5.7,我發現zip文件不再包含
data
目錄?如果我嘗試通過從現有數據庫複製來創建一個,則會出現錯誤。查看文件,我發現我現在應該進入
initialize
數據目錄。但是當我嘗試這個時,我得到一個錯誤:c:\MySQL\bin\mysqld.exe --initialize --user=mysql mysqld: Can't change dir to 'C:\MySQL\DATA\' (Errcode: 2 - No such file or directory)
如果我創建目錄,它似乎可以工作,但仍然沒有 MySQL 目錄,所以當我執行
mysql_upgrade
或嘗試(然後啟動服務)登錄時,它會失敗。2016-05-16T09:03:16.222540Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist.
我發現這篇文章說密碼應該在錯誤日誌中,但事實並非如此。
那麼,如果他們不再給我們數據目錄(以及mysql使用者等表),我應該如何安裝MySQL?
(在有人建議使用 msi 文件之前 - 這不是一個選項,因為它們在我們的網路上被阻止,並且需要我跳過無數圈才能下載它,更不用說執行它了)。
如果我這樣做:複製 MySQL 目錄 >> 初始化 >> 安裝服務 >> 啟動服務,這似乎沒問題,直到我查看錯誤日誌並看到幾乎每個表
has the wrong structure
。但我無法執行 mysql_upgrade,因為我沒有密碼,並且mysql@localhost
是access denied
.更新:2016-05-18
所以我得到了 MSI 文件,並(嘗試)使用它進行安裝。最終,我設法安裝並執行了 MySQL 5.7 的副本。所以現在我需要安裝第二個副本。MSI 安裝程序此時失敗,因為我“已經安裝了一個副本”,我看不到安裝另一個副本的選項。
所以我將 MySQL 目錄複製到一個新文件夾,刪除了 DATA 目錄,更新了 ini 文件,然後執行
c:\Mysql\...\mysqld.exe --initialize
.這為我重新創建了 DATA 目錄。然後我將其設置為服務
c:\Mysql\....\mysqld.exe --install MySQL57-2 --defaults-file=c:\MySQL\...\my.ini
我從錯誤日誌中獲得了臨時密碼,並嘗試登錄,但被告知
ERROR 1130 (HY000): Host '::1' is not allowed to connect to this MySQL server
。所以我停止了服務,使用 啟動 Mysqld
--skip-grant-tables
,登錄,添加新使用者,註銷,重新啟動服務。但仍然無法登錄。如果每次我需要安裝一個新數據庫時都這麼麻煩,我想我會堅持使用 5.5。
幹得好
在 WINDOWS 10 上安裝 MYSQL 5.7.25 ZIP 使用 zip/portable 版本在 Windows 10 上安裝 MySQL 伺服器 5.7.25。使用 zip 版本可以讓您在同一台開發機器上執行多個版本。 https://cloudwrk.com/mysql-server-5-7-x-zip-install/