MySQL 4.1.9, a new version of the popular Open Source/Free Software
Database Management System has been released. It is now available in source
and binary form for a number of platforms from our download pages at
Note that not all mirror sites may be up-to-date at this point. If you
cannot find this version on a particular mirror, please try again later or
choose another download site.
This is a bug fix release for the current production series.
Please refer to our bug database at http://bugs.mysql.com/
for more details
about the individual open and resolved bugs in this version.
Changes in release 4.1.9:
Functionality added or changed:
* The naming scheme of the Windows installation packages has changed slightly:
- The platform suffix was changed from -win to -win32
- The product descriptions -noinstall and -essential have been
moved in front of the version number
`mysql-noinstall-4.1.9-win32.zip' See section 2.3 Installing MySQL
* The Mac OS X 10.3 installation disk images now include a MySQL
Preference Pane for the Mac OS X Control Panel that enables the
user to start and stop the MySQL server via the GUI and activate
and deactivate the automatic MySQL server startup on bootup.
* Seconds_Behind_Master will be NULL (which means ``unknown'') if
the slave SQL thread is not running, or if the slave I/O thread is
not running or not connected to master. It will be zero if the SQL
thread has caught up with the I/O thread. It no longer grows
indefinitely if the master is idle.
* InnoDB: Do not acquire an internal InnoDB table lock in LOCK
TABLES if AUTOCOMMIT=1. This helps in porting old MyISAM
applications to InnoDB. InnoDB table locks in that case caused
deadlocks very easily.
* InnoDB: Print a more descriptive error and refuse to start InnoDB
if the size of `ibdata' files is smaller than what is stored in
the tablespace header; innodb_force_recovery overrides this.
* The MySQL server aborts immediately instead of simply issuing a
warning if it is started with the --log-bin option but cannot
initialize the binary log at startup (that is, an error occurs
when writing to the binary log file or binary log index file).
* The binary log file and binary log index file now behave like
MyISAM when there is a "disk full" or "quota exceeded" error. See
section 4.3 How MySQL Handles a Full Disk.
* New implementation of shared memory transporter (for Cluster).
* Cluster will automatically configure shared memory transporter if
* Cluster will prioritize usage of transporters with shared memory
and localhost TCP
* Added switches to control the above functions, ndb-shm and
* InnoDB: Fixed the *critical bug* if you enabled
innodb_file_per_table in `my.cnf'. If you shut down mysqld,
records could disappear from the secondary indexes of a table.
* InnoDB: Fixed a bug: 32-bit mysqld binaries built on HP-UX-11 did
not work with InnoDB files greater than 2 GB in size. (Bug #6189)
* InnoDB: Return a sensible error code from DISCARD TABLESPACE if it
fails because the table is referenced by a FOREIGN KEY.
* InnoDB: Fixed a bug: InnoDB failed to drop a table in the
background drop queue if the table was referenced by a FOREIGN KEY
* InnoDB: Fixed a bug: if we dropped a table where an INSERT was
waiting for a lock to check a FOREIGN KEY constraint, then an
assertion would fail in lock_reset_all_on_table().
* InnoDB: Fix a little bug: we looked at the physical size of a
stored SQL NULL value from a wrong field in the index; this has
probably caused no bugs visible to the user. It caused only some
extra space to be used in some rare cases.
* InnoDB: Use the fcntl() file flush method on Mac OS X versions
10.3 and up. Apple had disabled fsync() in Mac OS X for internal
disk drives, which caused corruption at power outages.
* mysqladmin password now checks whether the server has
--old-passwords turned on or predates 4.1 and uses the old-format
password if so. (Bug #7451)
* Added a --default-character-set option to mysqladmin to avoid
problems when the default character set is not latin1. (Bug #7524)
* Fix a problem with truncation of FLOAT values. (Bug #7361)
* Fixed a bug in PROCEDURE ANALYSE(), which did not quote some ENUM
values properly. (Bug #2813)
* Fixed a bug that caused incorrect results for complex datetime
expressions containing casts of datetime values to TIME or DATE
values. (Bug #6914)
* Include compression library flags in the output from mysql_config
--lib_r. (Bug #7021)
* Corrected a problem with mysql_config not producing all relevant
flags from CFLAGS. (Bug #6964)
* Corrected a problem with mysqld_safe not properly capturing output
from ps. (Bug #5878)
* Fixed a bug that caused a linking failure when linking both the
MySQL client library and IMAP library. (Bug
* Fixed a bug that caused microseconds to be gobbled from the string
result of the STR_TO_DATE function, if there is some other
specifier in the format string following %f. (Bugs #7458)
* Made the MySQL server accept executing SHOW CREATE DATABASE even
if the connection has an open transaction or locked tables.
Refusing it made mysqldump --single-transaction sometimes fail to
print a complete CREATE DATABASE statement for some dumped
databases. (Bug #7358)
* Fixed that, when encountering a ``disk full'' or ``quota
exceeded'' write error, MyISAM sometimes didn't sleep and retry
the write, thus resulting in a corrupted table. (Bug #7714)
* Fixed that --expire-log-days was not honored if using only
transactions. (Bug #7236)
* Fixed that a slave could crash after replicating many ANALYZE
TABLE, OPTIMIZE TABLE, or REPAIR TABLE statements from the master.
(Bug #6461, Bug #7658)
* ndb_restore fails to handle blobs and multiple databases (Bug #7379)
* ndb_restore enters infinite loop (Bug
* ndb_mgmd is aborted on startup when using SHM connection (Bug #7124)
Matt Wagner, Production Engineer
MySQL AB, www.mysql.com
Northfield, MN, USA