我现在给一软件打包,需要将mysql打进去。我想先在目标客户电脑上检查是否已安装mysql,请问如何实现?如果检测到已安装,如何取得该mysql的版本?多谢!!

解决方案 »

  1.   

    你可以试着连接一下,如果连接上,则可以 select version()得到版本。理论上没有什么可靠的方法。 比如用户如果是用的手工解压版,然后自行配置的,特别是如果用了不同的端口号,则你很难去判断该机上已经安装了MYSQL。
      

  2.   

    是的,难就难在如果用户设置了密码,且用的是免安装版比方说以前就是用的免安装版且设置了密码,在服务里肯定是有mysql的服务了,可否通过这个服务来取得版本?另外再请教一个新的问题:
    现在我有mysql5.1.3 和 5.1.6两个免安装版,先用5.1.6启动了一个服务,初始没有密码,
    然后就设置了密码为123,
    再用5.1.3启动一个服务,在my.ini里设置了不同端口号,但在5.1.3的bin下我用
    mysqld - u root -p 回车后要求输入密码,为空进不去,输入123后能进入,查看版本却是516.请问我此时想给 513设置密码应该怎么做?
    也就是说 如果在不同的端口分别启动两个mysql服务,怎么分别设置不同的密码?谢谢!
      

  3.   

    比方说以前就是用的免安装版且设置了密码,在服务里肯定是有mysql的服务了
    免安装版,也就是ZIP版的,不会有服务,一般是需要手工自行创建服务。 无法通过这个服务得到版本号。最多是通过这个服务中的IMAGE信息“"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld"”得到个近似的版本号,前提是用户的目录名有有这个 MySQL Server 5.1, 但手工安装的一般都不会有。
    mysqld - u root -p 还是 mysql - u root -p  ??mysql.exe 只是个用户命令行工具,至于它连接到哪个MYSQL服务则要看你指定的端口号。 mysql /? 看一下如何指定 --port.
      

  4.   

    上面我说的不够明白,就是如你所说,用的zip版,然后自己install服务然后启动。下面用的是  mysqld -u root -p ,是带D的, 我先去看一下帮助,如果还是不明白,再来请教,多谢 ACMAIN_CHM!!
      

  5.   

    会了  在  mysql -u root -p 后面加上 -p --port=端口号
    第二个问题OK了!多谢ACMAIN_CHM!!第一个问题不知道还有啥办法不重新问一下:
    在给软件打包时:
    1,如何检测目标计算机上是否装有mysql,这里的难点在于如果用的免安装版,则安装路径未知
    2,如果有的话要查看其版本,如果对方设置密码,在不提供密码的前提下,有没有办法取得该mysql版本。多谢!
      

  6.   

    在弱弱的顶一下问题如下:在给软件打包时: 
    1,如何检测目标计算机上是否装有mysql,这里的难点在于如果用的免安装版,则安装路径未知 
    2,如果有的话要查看其版本,如果对方设置密码,在不提供密码的前提下,有没有办法取得该mysql版本。