我正在嘗試製作一個自定義安裝程序,該安裝程序默默安裝MySQL,但我遇到了相同的問題幾天。安裝MySQL服務器後,初始化失敗,因此,當我嘗試輸入密碼時,它會立即關閉(意味着密碼設置錯誤或者更糟,根本沒有設置)。MySQL無提示安裝(使用NSIS)無法正常工作
這裏是安裝程序的代碼:my.ini文件的內容是從後創建my.ini文件複製
!define PRODUCT_NAME "Soft1" !define PRODUCT_VERSION "1.0" !define PRODUCT_PUBLISHER "Zaco"SetCompressor lzma
!include "MUI2.nsh"
!define MUI_ABORTWARNINGS !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" !define MUI_WELCOMEPAGE_TEXT "Welcome txt"
!insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Lic.txt" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "English"
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "Soft1.exe" InstallDir "$PROGRAMFILES\Soft1" ShowInstDetails show
Section -Settings SetOutPath "$INSTDIR" SetOverwrite ifnewer SectionEnd
Section "MySQL" SEC_01
File mysql.msi ExecWait 'msiexec /i "$INSTDIR\mysql.msi" /quiet' SetOutPath "$PROGRAMFILES\MySQL\MySQL Server 5.1" File my.ini File mysql-init.txt ExecWait '"$PROGRAMFILES\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file = "$PROGRAMFILES\MySQL\MySQL Server 5.1\my.ini" ' ExecWait '"$PROGRAMFILES\MySQL\MySQL Server 5.1\bin\mysqld" --init-file = "$PROGRAMFILES\MySQL\MySQL Server 5.1\mysql-init.txt" ' ExecWait "Net Start MySQL"
SectionEnd
使用MySQL服務器實例配置嚮導手動安裝和配置MySQL服務器。 MySQL的-init.txt包含以下代碼:
CREATE USER root IDENTIFIED BY PASSWORD 'New_Password'; GRANT ALL PRIVILEGES ON * . * TO 'root'@ 'localhost' IDENTIFIED BY 'New_Password' WITH GRANT OPTION ;
我使用了MySQL-init.txt這段代碼也試過,但我得到了相同的結果:
UPDATE mysql.user SET Password=PASSWORD(’New_Password’) WHERE User=’root’; FLUSH PRIVILEGES;
而且,如果嘗試使用MySQL服務器實例配置嚮導來配置服務器,它讓我選擇這些選項,就好像安裝程序的初始化命令在服務器上根本沒有任何作用一樣。
任何有關我如何解決這個問題的建議都是值得歡迎的。
在此先感謝您的關注!
我也嘗試過使用你的解決方案,但它不工作。這似乎是我的問題是由使用mysqld造成的。我試圖安裝MySQL服務器,將其保留爲未配置狀態,而不是在cmd中鍵入上述命令,但它也無法正常工作。因此,我的猜測是,my.ini和mysql-init.txt包含錯誤的信息或者我嘗試使用msqld的方式是錯誤的。歡迎任何建議! – ZLMN