4.12.6 MySQL-Win32 comparé à Unix MySQL

MySQL-Win32 has by now proven itself to be very stable. This version of MySQL has the same features as the corresponding Unix version with the following exceptions:

Win95 and threads
Win95 leaks about 200 bytes of main memory for each thread creation. Because of this, you shouldn't run mysqld for an extended time on Win95 if you do many connections, since each connection in MySQL creates a new thread! WinNT and Win98 don't suffer from this bug.
Blocking read
MySQL uses a blocking read for each connection. This means that:
  • A connection will not be disconnected automatically after 8 hours, as happens with the Unix version of MySQL.
  • If a connection ``hangs,'' it's impossible to break it without killing MySQL.
  • mysqladmin kill will not work on a sleeping connection.
  • mysqladmin shutdown can't abort as long as there are sleeping connections.
We plan to fix this in the near future.
UDF functions
For the moment, MySQL-Win32 does not support user definable functions.
DROP DATABASE
You can't drop a database that is in use by some thread.
Killing MySQL from the task manager
You can't kill MySQL from the task manager or with the shutdown utility in Windows95. You must take it down with mysqladmin shutdown.
Case-insensitive names
Filenames are case insensitive on Win32, so database and table names are also case insensitive in MySQL for Win32. The only restriction is that database and table names must be given in the same case throughout a given statement. The following query would not work because it refers to a table both as my_table and as MY_TABLE:
SELECT * FROM my_table WHERE MY_TABLE.col=1;
The `\' directory character
Pathname components in Win95 are separated by `\' characters, which is also the escape character in MySQL. If you are using LOAD DATA INFILE or SELECT ... INTO OUTFILE, you must double the `\' character or use Unix style filenames `/' characters:
LOAD DATA INFILE "C:\\tmp\\skr.txt" INTO TABLE skr;
SELECT * FROM skr INTO OUTFILE 'C:/tmp/skr.txt';
Can't open named pipe error
If you use the shareware version of MySQL-Win32 on NT with the newest mysql-clients you will get the following error:
error 2017: can't open named pipe to host: . pipe...
This is because the release version of MySQL uses named pipes on NT by default. You can avoid this error by using the --host=localhost option to the new MySQL clients or create a file `C:\my.cnf' that contains the following information:
[client]
host = localhost
Access denied for user error
If you get the error Access denied for user: 'some-user@unknown' to database 'mysql' when accessing a MySQL server on the same machine, this means that MySQL can't resolve your host name properly. To fix this, you should create a file `\windows\hosts' with the following information:
127.0.0.1       localhost

Here are some open issues for anyone who might want to help us with the Win32 release:

  • Make a single user MYSQL.DLL server. This should include everything in a standard MySQL server, except thread creation. This will make MySQL much easier to use in applications that don't need a true client/server and don't need to access the server from other hosts.
  • Add some nice ``start'' and ``shutdown'' icons to the MySQL installation.
  • Create a tool to manage registry entries for the MySQL startup options. The registry entry reading is already coded into mysqld.cc, but it should be recoded to be more ``parameter'' oriented. The tool should also be able to update the `\my.cnf' file if the user would prefer to use this instead of the registry.
  • When registering mysqld as a service with --install (on NT) it would be nice if you could also add default options on the command line. For the moment, the workaround is to update the `C:\my.cnf' file instead.
  • When you suspend a laptop running Win95, the mysqld daemon doesn't accept new connections when the laptop is resumed. We don't know if this is a problem with Win95, TCP/IP or MySQL.
  • It would be real nice to be able to kill mysqld from the task manager. For the moment, you must use mysqladmin shutdown.
  • Port readline to Win32 for use in the mysql command line tool.
  • GUI versions of the standard MySQL clients (mysql, mysqlshow, mysqladmin, and mysqldump) would be nice.
  • It would be nice if the socket ``read'' and ``write'' functions in `net.c' were interruptible. This would make it possible to kill open threads with mysqladmin kill on Win32.
  • Documentation of which Windows programs work with MySQL-Win32/MyODBC and what must be done to get them working.
  • mysqld always starts in the "C" locale and not in the default locale. We would like to have mysqld use the current locale for the sort order.
  • Port sqlclient to Win32 (almost done) and add more features to it!
  • Add more options to MysqlManager.
  • Change the communication protocol between the server and client to use Windows internal communication instead of sockets and TCP/IP.
  • Implement UDF functions with .DLLs.
  • Add macros to use the faster thread-safe increment/decrement méthodes provided by Win32.

Other Win32-specific issues are described in the `README' file that comes with the MySQL-Win32 distribution.