Commit 73fb1aed authored by unknown's avatar unknown
Browse files

Bug #20376 Doesn't auto-detect data dir

This changeset fixes the problem where mysql, when run as a service,
can't "detect" it's own data directory.


sql/mysqld.cc:
  When running on Windows we check to see if we have a hard path in 
  my_progname.  If not, then we use GetModuleFilename to get the full path
  for the executing module.  This allows the program to determine where
  it's at when running as a service.
parent 78021230
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -7333,6 +7333,18 @@ static void mysql_init_variables(void)
  /* Allow Win32 and NetWare users to move MySQL anywhere */
  {
    char prg_dev[LIBLEN];
#if defined __WIN__
	char executing_path_name[LIBLEN];
	if (!test_if_hard_path(my_progname))
	{
		// we don't want to use GetModuleFileName inside of my_path since
		// my_path is a generic path dereferencing function and here we care
		// only about the executing binary.
		GetModuleFileName(NULL, executing_path_name, sizeof(executing_path_name));
		my_path(prg_dev, executing_path_name, NULL);
	}
	else
#endif
    my_path(prg_dev,my_progname,"mysql/bin");
    strcat(prg_dev,"/../");			// Remove 'bin' to get base dir
    cleanup_dirname(mysql_home,prg_dev);