我正在尝试为我们编写的内部应用程序编写一个安装程序。在安装我们的应用程序后,它会在静默模式下使用 .msi 安装程序安装 MySQL。我将安装目录和数据目录指定为应用程序安装目录中的目录,例如:
msiexec /i @@MYSQL_INSTALLER_FILE@@ /qn
INSTALLDIR="@@INSTALL_DIR@@\MySQL\"
DATADIR="@@INSTALL_DIR@@\MySQL\"
USERNAME="@@DB_USER@@" PASSWORD="@@DB_PASS@@"
(@@variable@@ 已被我的安装程序使用 InstallJammer 替换)
安装后,我使用 mysqld.exe 安装具有自定义服务名称和默认文件的 Windows 服务,如下所示:
mysqld.exe --install CustomMySQL --defaults-file="@@INSTALL_DIR@@\MySQL\my.ini"
只要尚未安装另一个 MySQL 实例,此方法即可正常工作。如果已安装,则安装 MySQL 时会失败。手动运行 msi 安装程序(双击)会显示错误,提示已安装先前版本,然后直接中止。
有没有办法自动将 MySQL 安装为独立实例,而不管是否已经安装了其他版本/实例?
答案1
噢,有。
首先,我不太喜欢将 .msi 用于 MySQL。
我喜欢执行以下操作来创建完整的 Windows 服务而不使用 .msi
01)将无需安装的 MySQL zip 下载到您的桌面。
02) 在 Window1 中打开 Zip 文件。您应该看到数据文件夹、bin 文件夹、几个 my.ini 文件和其他文件。
03) 在所需位置创建服务器文件夹和数据文件夹。在此示例中,在 DOS 窗口中执行以下操作:
md C:\MySQLServer
md C:\MySQLData
04)C:\MySQLServer
在 Windows 资源管理器中打开 (Window2)
05) 将 Zip 内容 (Window1) 复制并粘贴到 C:\MySQLServer (Window2)
06)C:\MySQLServer\data
在 Windows 资源管理器中打开 (Window3)
07)C:\MySQLData
在 Windows 资源管理器中打开 (Window4)
C:\MySQLServer\data
08) 将(窗口3)的内容复制并粘贴到C:\MySQLData
(窗口4)
09)关闭窗口3和窗口4
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)关闭所有窗口
你应该完成了!
让我们知道结果如何!!!
顺便说一下,服务名称是 MySQLNew