Bug #1298 NT service installation specifies non-existent executable .../mysql/bin/mysqld-
Submitted: 16 Sep 2003 8:04 Modified: 24 Jan 2004 8:42
Reporter: [ name withheld ] Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Installing Severity:S3 (Non-critical)
Version:4.0.15 OS:Windows (Windows XP)
Assigned to: MySQL Verification Team CPU Architecture:Any

[16 Sep 2003 8:04] [ name withheld ]
Description:
Trying to install MySQL as a service using "mysqld --install" sets the
name of the executable (in the General tabs of the MySql service's 
properties) to .../mysql/bin/mysqld-shareware.exe, but there is no
such file.

How to repeat:
- Run the command "mysqld --install" (at least on a fairly fresh installing
  using the Windows binary version installer).
- In the Services utility, check the MySql service's executable.
- (Try to run the service.  I was getting some kind of file-not-found error,
  although I can't check that right now because my MySql service is in
  some jammed state (can't remove it, can't start it or anything).

Suggested fix:
If the problem is not something else, test releases a little more.  :-)
[16 Sep 2003 8:33] MySQL Verification Team
Open the SCM and verify the service image path which shows
the path of the binary. Then open a DOS screen and verify
if the binary actually exists in that path.
If no, remove the service with:

mysqld --remove

and re-install the service again.
[16 Sep 2003 9:55] [ name withheld ]
Now that I completely uninstalled MySQL, cleaned out the registry the best
I could[*] and re-installed MySQL and installed the service again, it 
worked.  (The service properties window shows an executable path of 
...\bin\mysqld.exe.)

Here's one thing I know I did differently:

After installing the first time, I ran WinMySqlAdmin which created 
C:\WINDOWS\my.ini including the line:

  Server=C:/tools/mysql/bin/mysqld-shareware.exe

(It was in the [WinMySQLadmin] section.)

This time, I didn't run WinMySqlAdmin.  I ran the installer, manually 
created C:\WINDOWS\my.ini to set basedir and datadir, ran "mysql --console"
to create/initialize the table files, and ran "mysql --install", and the
service started right up.

[* Is HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_MYSQL part of 
MySQL?  I can't delete it; should I be able to?]

> Open the SCM

Is that the MySql Properties window in the Services manager or is SCM 
something else?
[16 Sep 2003 10:38] Mark Matthews
Where did you get your release from? mysqld-shareware.exe doesn't appear to be a release we (MySQL AB) has built. Our binaries (that would allow you to install a service) are mysqld-nt.exe or mysqld-max-nt.exe.
[16 Sep 2003 10:45] Mark Matthews
Let me correct my earlier statement. This doesn't appear to be any _recent_ release of MySQL from MySQL-AB. Perhaps you are using a _very_ old release (many years, in fact) of MySQL, in which case you should upgrade to something more recent and see if your bug still exists.
[16 Sep 2003 11:43] [ name withheld ]
Corrected version number (from mis-typed 4.0.14 to correct 4.0.15).
[16 Sep 2003 11:56] MySQL Verification Team
The only explanation I can guess is that for some unknown reason
the WinMySQLAdmin was listed the -shareware binary in the existing
ones on \bin directory and installed the service with this executable
name. This is the first time that this behavior is reported.
[16 Sep 2003 12:00] [ name withheld ]
I'm talking about release 4.0.15 (which I initially mistyped as 4.0.14),
from the file mysql-4.0.15-win.zip.

Notice that I'm not talking about the presence of a _file_ that is named "mysqld-shareware.exe"; I'm talking about the presence of the file _name_ 
"mysqld-shareware.exe".

The file ...\bin\winmysqladmin.exe contains the string "mysqld-shareware.exe".  
Apparently, winmysqladmin wrote it to my.ini:

  ...
  [mysqld]
  #bind-address=10.10.40.102
  #language=C:/tools/mysql/share/your language directory
  #slow query log#=
  #tmpdir#=
  #port=3306
  #set-variable=key_buffer=16M
  [WinMySQLadmin]
  Server=C:/tools/mysql/bin/mysqld-shareware.exe
  user=x
  password=y

Writing that name to my.ini might not be a problem in itself, but 
apparently something read that Server= line (from the [WinMySQLadmin]
section) and used that (wrong) file name when creating the NT service.

Perhaps some program was supposed to ignore lines in the [WinMySQLadmin]
section but didn't?
[24 Jan 2004 8:42] MySQL Verification Team
The file name mysqld-shareware.exe is presents for to support early
MySQL packages.