Bug #47971 Cannot finish Windows Config Wizard on Czech operating system due "my.ini"
Submitted: 10 Oct 2009 21:27 Modified: 31 Mar 2014 8:09
Reporter: Miroslav Ambros Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Config Wizard Severity:S2 (Serious)
Version:5.1, 5.4.2-beta OS:Windows (Windows XP Czech)
Assigned to: CPU Architecture:Any
Tags: czech, install, my.ini, service, UTF-8, windows

[10 Oct 2009 21:27] Miroslav Ambros
Description:
I have installed mysql-5.4.2-beta-win32.msi (complete install) on Widows XP Czech. Then I have configured service using Windows Config Wizard (all default options left except "multilinguality" - switched to use utf-8 as default (but I think it doesn't matter)).
The Windows Config Wizard freezes after clicking on button "Execute" (the last page which processes the configuration). MySQLInstanceConfig.exe consumes some CPU as well as services.exe but nothing happens even after few minutes and these processes must be killed.

How to repeat:
See description.

Suggested fix:
There is an event in my event log (in Czech language):

Nelze nalézt popis ID události ( 100  ) ve zdroji ( MySQL ). Místní počítač možná nemá informace registru nebo soubory knihovny DLL se zprávami potřebné pro zobrazení zpráv ze vzdáleného počítače. K získání tohoto popisu můžete použít parametr /AUXSOURCE=flag. Další informace naleznete v nápovědě. Součástí události jsou následující informace: Can't create test file C:\Documents and Settings\All Users\Data aplikacĂ­\MySQL\MySQL Server 5.4\Data\MONSTERA.lower-test

It tells something about unknown descriptor (100) in source (MySQL). Plus information it can't create a file "MONSTERA.lower-test" (MONSTERA is name of my computer).
There is a problem with default Windows path localized on Czech operating systems:
"C:\Documents and Settings\All Users\Data aplikacĂ­\"
(it corresponds to "Application Data" directory on English operating systems)
The problem is in character "í" (normal "i" plus accent mark). A proper path is:
"C:/Documents and Settings/All Users/Data aplikací/MySQL/MySQL Server 5.4/Data/"

This character is encoded in "my.ini" created by Windows Config Wizard using UTF-8 encoding (two bytes). This should be ok I think (even the file misses the BOM at its beginning). But when "net start mysql" is executed it fails with the "can't create test file" error in event log.

My fix: it seems it is enough to open the "my.ini" in Notepad and save it using "ANSI" encoding (instead of UTF-8). After this the command "net start mysql" can be executed successfully. But unfortunately Windows Config Wizards's step "Apply Security Settings" isn't executed at all then - and even can't be re-configured as "my.ini" is overwritten each time.

I can upload my "my.ini" somewhere if useful.
[10 Oct 2009 21:48] Miroslav Ambros
To set root password (as replacement of missed "Apply Security Settings" step):
      mysqladmin -u root password MY_NEW_SECRET_PASSWORD
[10 Oct 2009 21:50] Peter Laursen
there are lots of related/more or less overlapping reports here.  But problems with the Czech localisation of 'Application Data' may be a new aspect though.

However it is *definitely not* OK that a file path in windows uses UTF8 encoding.  File paths in Windows must be either ANSI or 'Windows Unicode' ('Windows Unicode' = UTF16 with 'little endian' byte order).

Peter
(not a MySQL person)
[10 Oct 2009 21:55] Peter Laursen
btw: you should also delete anonymous user(s)!  Try execute

SELECT user,host from mysql.user

.. to see what users you actually have!
[10 Oct 2009 22:09] Miroslav Ambros
Re: there are lots of related/more or less overlapping reports here
I made few searches through all bug reports and found nothing related to my problem (I hope I used proper keywords to search for ;-) ).
It seems I'm able to migrate my data successfully to the database so my simple "fix" works.

Re: anonymous users:
   'root', '127.0.0.1'
   '', 'localhost'
   'root', 'localhost'
I only want to try to migrate my data to MySQL now to make some performance tests plus to get more familiar with MySQL environment so I don't care about the security issues now... ;-)
[10 Oct 2009 22:14] Peter Laursen
But I think I understand from another discussion that the MySQL server will not use configuration files encoded with Windows Unicode!
(http://bugs.mysql.com/bug.php?id=43184).
[10 Oct 2009 22:26] Peter Laursen
There are more reports where config wizard failed to complete. But they may have been closed as fixed now. 

just re-encode the my.ini, drop those users you don't want and apply a root password -- and you have completed what the config wizard failed to do properly. 

I think that only very few Windows localizations will localize 'Application Data'.  My Danish Windows uses the English term actually.

But we (I am with Webyog) actually have stumbled across this with Czech too a few years ago. I do not remember the exact context but we checked a lot of non-English Windows at the time and found only the problem in Czech.

Also I think that Vista and higher may not be affected (as Vista/2008/Win7 uses language files for localization of the GUI, but in the command interface everything is English).

Anyway this problem with Czech should be verifiable by the MySQL team here! Let them reply.
[10 Oct 2009 22:35] Miroslav Ambros
Thanks for your comprehensive explanation. :-)
I'm happy now as I can work with MySQL 5.4 - and maybe somebody will (some day) fix the MySQL installation... :-)
[13 Oct 2009 17:46] MySQL Verification Team
I didn't have problems to install on XP Portuguese version maybe Widows XP Czech issue only. So I am changing Synopsis.
[13 Oct 2009 18:37] Peter Laursen
I do not have such problem on Danish either.  The problem apparently is that Czech localization of 'Application Data' folder uses a character not existing in ANSI/western (or 'latin1' to use MySQL terminology) what results in that the my.ini written by config wizard will be UTF8-encoded.

UTF8 is not valid for file paths in Windows at all. Only ANSI and 'Windows Unicode' (UTF16 with 'little endian' byte order) is. Additionally MySQL can only use ANSI-encoded file on Windows.

Likely the Config wizard has some code from *nix/Cygwin since it will use UTF8 and not ANSI/Central European (what it should for the .ini to be functional with MySQL with such localized Windows) in situations where encoding of localized characters in MySQL file paths differ from ANSI/Western.

As told we (Webyog) had a similar issue a couple of years ago and only found the problem in Czech (but if a Slovak Windows localization exists too, I would be surprised if it is not affected too - and maybe also Slovenian and other Balkan languages of slaw language family (+ Baltic languages?) should be checked.
[29 Nov 2009 14:09] Alexey Kishkin
Dobry den Miroslav,

could you please provide here output of

chcp 

command from cnd.exe?
[29 Nov 2009 20:28] Miroslav Ambros
Hi Alexey.
Here we go:

C:\Documents and Settings\Administrator>chcp
Aktivní znaková stránka: 852

Mirek
[15 Feb 2010 21:04] Sveta Smirnova
Thank you for the feedback.

Verified as described.

To repeat: rename default data directory to something like 'dataпорусски', then start config wizard and try to configure the instance.
[15 Feb 2010 21:05] Sveta Smirnova
As seen from my comment no Czech Windows needed.
[15 Feb 2010 21:06] Sveta Smirnova
Problem is not only Config Wizard, but service reject to start.
[15 Feb 2010 21:07] Sveta Smirnova
Thought Config Wizard changed name of the data directory.
[21 Mar 2010 11:57] K H
When installing the server, you have to select "Custom Install" and change the data directory somewhere else.
[21 Mar 2010 12:02] K H
pri instalaci je nutne zvolit "Custom" a nastavit adresar, kam se ukladaji data (Mysql server datafiles) nekam jinam - napr. do C:\Program Files\MySQL\

proste zaprcane microsofti cesty s diakritikou, co na to rict no...
[31 Mar 2014 8:08] Yngve Svendsen
Posted by developer:
 
Thank you for the bug report. We are closing this report now for two related reasons:

* MySQL Server 5.1 (and 5.4) is an obsolete version of MySQL Server
* For newer MySQL Server versions, the config wizard is no longer available, and the MySQL Installer for Windows is the recommended way to install MySQL Server on Windows