Я пытаюсь написать установщик для написанного нами внутреннего приложения. После установки нашего приложения он устанавливает MySQL с помощью установщика .msi в автоматическом режиме. Я указываю каталог установки и каталог данных для каталога в каталоге установки моего приложения, например:
msiexec /i @@MYSQL_INSTALLER_FILE@@ /qn
INSTALLDIR="@@INSTALL_DIR@@\MySQL\"
DATADIR="@@INSTALL_DIR@@\MySQL\"
USERNAME="@@DB_USER@@" PASSWORD="@@DB_PASS@@"
(переменная @@ @@ заменена моей программой установки, использующей InstallJammer)
После установки я использую mysqld.exe для установки службы Windows с пользовательским именем службы и файлом значений по умолчанию, например:
mysqld.exe --install CustomMySQL --defaults-file="@@INSTALL_DIR@@\MySQL\my.ini"
Это отлично работает, пока еще не установлен другой экземпляр MySQL. Если есть, то молча не удается установить MySQL. Запуск установщика msi вручную (двойной щелчок) показывает ошибку, что предыдущая версия уже установлена, и просто прерывается.
Есть ли способ автоматизировать установку MySQL как изолированного экземпляра, независимо от того, установлена ли уже другая версия / экземпляр?
О да, есть.
Во-первых, я не большой поклонник использования .msi для MySQL.
Мне нравится делать следующее, чтобы создать полноценную службу Windows без использования .msi
01) Загрузите ZIP-архив MySQL на свой рабочий стол.
02) Откройте Zip-файл в Window1. Вы должны увидеть папку данных, папку bin, несколько файлов my.ini и другие файлы.
03) Создайте папку сервера и папку данных в желаемом месте. В этом примере в окне DOS выполните следующие действия:
md C:\MySQLServer
md C:\MySQLData
04) Открыть C:\MySQLServer
в проводнике окон (Window2)
05) Скопируйте и вставьте содержимое ZIP-архива (Window1) в C: \ MySQLServer (Window2)
06) Открыть C:\MySQLServer\data
в проводнике Windows (Window3)
07) Открыть C:\MySQLData
в проводнике окон (Window4)
08) Скопируйте и вставьте содержимое C:\MySQLServer\data
(Window3) в C:\MySQLData
(Окно4)
09) Закройте Window3 и Window4
10) Откройте окно DOS и выполните следующие команды DOS
cd C:\MySQLServer
copy my-medium.ini my.ini
notepad my.ini
define datadir="C:\\MySQLData"
cd C:\MySQLServer\bin
mysqld --install MySQLNew
net start MySQLNew
11) Закройте все окна
Вы должны сделать !!!
Сообщите нам, как это получилось !!!
BTW Имя службы оказывается MySQLNew