nsi에서 mysql 자동 설치 및 구성

nsi에서 mysql 자동 설치 및 구성

NSI에 MySQL 5.0을 자동으로 설치하고 싶습니다. NSI에서 다음 코드를 시도했습니다.

  ExecWait 'msiexec /i "$INSTDIR\mysql-essential-5.0.27-win32.msi" /qn'
  ExecWait "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqlinstanceconfig.exe -i -q ServiceName=MySQL RootPassword=root ServerType=DEVELOPMENT    DatabaseType=MYISAM Port=3306 RootCurrentPassword=root"

MySQL을 설치하지만 구성하지는 않습니다.

나는 그것을 구성하고 싶다

  • 패스=루트
  • 포트=3306
  • 서비스 이름=MySQL
  • 원격 컴퓨터에서 루트 액세스를 활성화합니다.

편집1

이제 구성이 되어가고 있습니다...

localhost 또는 127.0.0.1인 serverhost의 경우 작동하지만 네트워크에 있는 다른 시스템의 IP 주소에는 작동하지 않습니다.

네트워크의 PC에서 자동으로 설치된 데이터베이스에 액세스하려고 하면 다음 오류가 발생합니다.

여기에 이미지 설명을 입력하세요

원격 시스템에서 루트 액세스를 활성화하고 일부 매개변수를 전달해야 하기 때문인 것 같습니다.

답변1

다음과 같이 파일 이름을 인용해 보세요 mysqlinstanceconfig.exe.

ExecWait 'msiexec /i "$INSTDIR\mysql-essential-5.0.27-win32.msi" /qn'
ExecWait "$\"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqlinstanceconfig.exe$\" -i -q ServiceName=MySQL RootPassword=root ServerType=DEVELOPMENT    DatabaseType=MYISAM Port=3306 RootCurrentPassword=root"

그 이유는 실행 파일 이름 경로에 공백이 있기 때문입니다. 해당 경로는 단일 경로를 형성할 수 있도록 따옴표로 묶어야 합니다.

답변2

전달된 전체 명령에 공백이 포함되어 있으면 ExecWait묶어야 합니다 .''

매개변수내부에""매개변수에 공백이 포함되어 있으면 묶어야 합니다 . 이를 수행하는 방법에 대한 완벽한 예를 볼 수 있습니다.바르게에 대한 첫 번째 통화에서 ExecWait.

명령에 공백이 있을 수 있으면 따옴표로 묶어 매개변수와 구분해야 합니다. 예: ExecWait '"$INSTDIR\command.exe" 매개변수'.

원천:선적 서류 비치

관련 정보