MySQL 4.1.8 リリース!

投稿日時 2004-12-17 8:39:52 | トピック: MySQL

MySQL 4.1.8 がリリースされました。
注目すべき点として、これまで「なんとなくダンプができるツール」だった mysqldump がてこ入れ(?)され、様々なオプションが追加になりました。

◆mysqldump の新しいオプション
--order-by-primary
--master-data
--single-transaction
--lock-all-tables
--hex-blob

また、NDBクラスター利用への準備も着々と進んでいる様子がうかがえます。


新機能および変更点は以下の通りです。
----

Changes in release 4.1.8:

■機能の追加と変更:

- For ALTER DATABASE, the database name now can be omitted to apply the change to the default database.

- Added WITH CONSISTENT SNAPSHOT clause to START TRANSACTION to begin a transaction with a consistent read.

- Added --order-by-primary to mysqldump, to sort each table's data in a dump file. This may be useful when dumping a MyISAM table which will be loaded into an InnoDB table. Dumping a MyISAM table with this option is considerably slower than without.

- InnoDB: Do not periodically write SHOW INNODB STATUS information to a temporary file unless the configuration option innodb_status_file=1 is set.

- InnoDB: Commit after every 10,000 copied rows when executing ALTER TABLE. This makes it much faster to recover from an aborted ALTER TABLE or OPTIMIZE TABLE.

- FULLTEXT index block size is changed to be 1024 instead of 2048.

- Added --disable-log-bin option to mysqlbinlog. Using this option you can disable binary logging for the statements produced by mysqlbinlog. That is, mysqlbinlog --disable-log-bin | mysql won't write any statements to the MySQL server binary log.

- The --master-data option for mysqldump now takes an optional argument of 1 or 2 to produce a non-commented or commented CHANGE MASTER TO statement. The default is 1 for backward compatibility.

- mysqldump --single-transaction --master-data now is able to take an online (non-blocking) dump of InnoDB and report the corresponding binary log coordinates. This makes a backup suitable for point-in-time recovery, roll-forward or replication slave creation. See section 8.8 The mysqldump Database Backup Program.

- Added --lock-all-tables to mysqldump to lock all tables by acquiring a global read lock.

- Added --hex-blob option to mysqldump for dumping binary string columns using hexadecimal notation.

- Added mysql_hex_string() C API function that hex-encodes a string.

- In the normal log MySQL now prints the logposition for Binlog Dump requests.

- Added [mysql_cluster] section to `my.cnf' file for configuration settings specific to MySQL Cluster. ndb-connectstring variable moved here.

- A connection doing a rollback will now display "Rolling back" in the State column of SHOW PROCESSLIST.

- mysqlbinlog now prints an informative commented line (thread id, timestamp, server id, etc) before each LOAD DATA INFILE, like it already does for other queries; unless --short-form is used.

- Default port for ndb_mgmd was changed to 1186 (from 2200) as this port number was officially assigned to MySQL Cluster by IANA.

- New command in ndb_mgm, PURGE STALE SESSIONS, as a workaround for cases where nodes fail to allocate a node id even if it is free to use.

- New command in ndb_mgm, CONNECT.

- The ndb executables have been changed to make use of the regular MySQL command line option parsing features. See section 16.4.5 Command Options for MySQL Cluster Processes for notes on changes.

- As bonus of the above you can now specify all command line options in `my.cnf' using the executable names as sections, i.e. [ndbd], [ndb_mgmd], [ndb_mgm], [ndb_restore] etc.
[ndbd]
ndb-connectstring=myhost.domain.com:1234
[ndb_mgm]
ndb-connectstring=myhost.domain.com:1234

- Added use of section [mysql_cluster] in `my.cnf'. All cluster executables, including mysqld, parse this section. Convenient place to put e.g. ndb-connectstring so that it only needs to be specified once.

- Added cluster log info events on allocation and deallocation of node ids.

- Added cluster log info events on connection refuse as a result of version mismatch.

- Extended connectstring syntax to allow for leaving the port number out. E.g. ndb-connectstring|connect-string=myhost1,myhost2,myhost3 is a valid connectstring and connect will occur on default port 1186.

- Clear text ndb error messages are also provided for error codes that are mapped to corresponding mysql error codes, by executing SHOW WARNINGS after an error has occurred which relates to the ndb storage engine.

- Significant performance improvements [with NDB storage engine] done for read performance, especially for blobs.

- Added some variables for performance tuning, ndb_force_send and ndb_use_exact_count. Do show variables like 'ndb%'; in mysql client for listing. Use set command to alter variables.

- Added variables to set some options, ndb_use_transactions and ndb_autoincrement_prefetch_sz.

■バグ修正:

- InnoDB: Refuse to open new-style tables created with MySQL 5.0.3 or later. (Bug #7089)

- Fixed incorrect referencing to column by name from subquery to outer query in case of using temporary table by outer query and placing subquery in the WHERE clause. (Bug #7079)

- InnoDB: Do not call rewind() when displaying SHOW INNODB STATUS information on stderr.

- Fixed a bug in authentication code that allowed a malicious user to crash the server with specially crafted packets (using a modified client library). (Bug #7187)

- Fixed a crashing bug in a string function LEFT, when this function is part of the expression which is used as GROUP BY field. (Bug #7101)

- Fixed bug which caused MySQL to require privileges on system time zone description tables for implicit access to them (i.e. if one set time_zone variable or used CONVERT_TZ() function) in case when some table-level or column-level privileges existed. (Bug #6765)

- mysql_stmt_data_seek(stmt,0) will now rewind a counter and enable that buffered rows can be re-fetched on the client side. (Bug #6996)

- Fixed an insufficient privilege check in SHOW CREATE TABLE command. (Bug #7043)

- Fixed a rare memory corruption (that resulted in a crash) in MATCH ... AGAINST on columns that use multi-byte character sets. (Bug #6269)

- Fixed NULL processing in ALL/SOME subqueries. (Bug #6247)

- Fixed execution complex queries with subqueries. (Bug #6406, Bug #6841)

- Fixed initialization of some internal structures for first execution. (Bug #6517)

- Backported a fix for the fulltext interface from MySQL 5.0. (Bug #6523)

- Fixed NULL value handling in case of empty results in subqueries. (Bug #6806)

- Prevent adding CREATE TABLE .. SELECT query to the binary log when the insertion of new records partially failed. (Bug #6682)

- INSERT ... SELECT no longer reports spurious "column truncated" warnings (Bug #6284)

- Fixed a bug that could cause "Record has changed since last read in table" error message in some queires on HEAP tables that contain only one row. (Bug #6748)

- mysqld_safe was in many cases ignoring any --no-defaults, --defaults-file, or --defaults-extra-file arguments. Those arguments are now honored, and this may change what options are passed to mysqld in some installations.

- The server was interpreting CHAR BINARY and VARCHAR BINARY columns from 4.0 tables as having the BINARY and VARBINARY data types. Now they are interpreted as CHAR and VARCHAR columns that have the binary collation of the column's character set. (This is the same way that CHAR BINARY and VARCHAR BINARY are handled for new tables created in 4.1.)

- Fixed spurious "duplicate key" error from REPLACE or INSERT ... ON DUPLICATE KEY UPDATE statements performing multiple-row insert in the table that had unique and fulltext indexes. (Bug #6784)

- Fixed a bug in execution of subqueries in SET and DO statements which caused wrong results to be returned from subsequent queries. (Bug #6462)

- Fixed a bug which allowed server to accept datetime values with wrong year part. Also now server will perform same checks for datetime values passed through MYSQL_TIME structure as for datetime values passed as strings. (Bug #6266)

- Fixed a bug with INSERT for a table with FULLTEXT indexes. Under rare circumstances, this could result in a corrupted table if words of different lengths may be considered equal. This is possible in some collations, for example, in utf8_general_ci or latin1_german2_ci. (Bug #6265)

- InnoDB: Made the foreign key parser better aware of quotes. (Bug #6340)

- InnoDB: If one used INSERT IGNORE to insert several rows at a time, and the first inserts were ignored because of a duplicate key collision, then InnoDB in a replication slave assigned AUTO_INCREMENT values 1 bigger than in the master. This broke the MySQL replication. (Bug #6287)

- InnoDB: Fixed a bug: InnoDB ignored in innodb_data_file_path the max specification in :autoextend:max:2000M. This bug was introduced in 4.1.1.

- InnoDB: Fixed a bug: innodb_locks_unsafe_for_binlog still uses next-key locking (Bug #6747). InnoDB used next-key locking when record matched completely to search tuple. This unnecessary next-key locking is now removed when innodb_locks_unsafe_for_binlog option is used.

- InnoDB: Fix two hangs: FOREIGN KEY constraints treated table and database names as case-insensitive. RENAME TABLE t TO T would hang in an endless loop if t had a foreign key constraint defined on it. Fix also a hang over the dictionary mutex that would occur if one tried in ALTER TABLE or RENAME TABLE to create a foreign key constraint name that collided with another existing name. (Bug #3478)

- If STMT_ATTR_UPDATE_MAX_LENGTH is set for a prepared statement, mysql_stmt_store_result() will update field->max_length for numeric columns as well. (Bug#6096)

- Prepared statements now handle zerofill when converting integer to string.

- Fixed crash when a call to mysql_stmt_store_result() occurred without a preceding call to mysql_stmt_bind_result().

- Fixed crash in prepared statements when using SELECT * FROM t1 NATURAL JOIN t2....

- Fixed crash in prepared statements when using SELECT ... PROCEDURE.

- Fixed crash in prepared statements when using subqueries.

- GROUP_CONCAT(...ORDER BY) when used with prepared statements gave wrong sorting order. CREATE TABLE created_table didn't signal when table was created. This could cause a DROP TABLE created_table in another thread to wait "forever".

- Server warnings now are reset when you execute a prepared statement.

- Improved performance of identifier comparisons (if many tables or columns are specified).

- OPTIMIZE TABLE, REPAIR TABLE, and ANALYZE TABLE are now replicated without any error code in the binary log. (Bug #5551)

- LOAD DATA INFILE now works with option replicate-rewrite-db. (Bug #6353)

- Fixed a bug which caused a crash when only the slave I/O thread was stopped and started. (Bug #6148)

- Changed semantics of CREATE/ALTER/DROP DATABASE statements so that replication of CREATE DATABASE is possible when using --binlog-do-db and --binlog-ignore-db. (Bug #6391)

- If a connection had an open transaction but had done no updates to transactional tables (for example if had just done a SELECT FOR UPDATE then executed a non-transactional update, that update automatically committed the transaction (thus releasing InnoDB's row-level locks etc). (Bug #5714)

- If a connection was interrupted by a network error and did a rollback, the network error code got stored into the BEGIN and ROLLBACK binary log events; that caused superfluous slave stops. (Bug #6522)

- A sequence of BEGIN (or SET AUTOCOMMIT=0), FLUSH TABLES WITH READ LOCK, transactional update, COMMIT, FLUSH TABLES WITH READ LOCK could hang the connection forever and possibly the MySQL server itself. This happened for example when running the innobackup script several times. (Bug #6732)

- mysqlbinlog did not print SET PSEUDO_THREAD_ID statements in front of LOAD DATA INFILE statements inserting into temporary tables, thus causing potential problems when rolling forward these statements after restoring a backup. (Bug #6671)

- (Bug #6919) all status only shows 2 nodes on an 8-node cluster

- (Bug #6871) DBD execute failed: Got error 897 'Unknown error code' from ndbcluster

- (Bug #6791) Segmentation fault when config.ini is not correctly set

- (Bug #6775) failure in acc when running many mysql clients

- (Bug #6696) ndb_mgm command line options inconsistent with behaviour

- (Bug #6684) ndb_restore doesn't give error messages if improper command given

- (Bug #6677) ndb_mgm can crash on "ALL CLUSTERLOG"

- (Bug #6538) Error code returned when select max() on empty table with index

- (Bug #6451) failing create table gives "ghost" tables which are impossible to remove

- (Bug #6435) strange behaviour of left join

- (Bug #6426) update with long pk fails

- (Bug #6398) update of primary key fails

- (Bug #6354) mysql does not complain about --ndbcluster option when NDB is not compiled in

- (Bug #6331) INSERT IGNORE .. SELECT breaks subsequent inserts

- (Bug #6288) cluster nodes crash on data import

- (Bug #6031) To drop database you have to execute DROP DATABASE command twice

- (Bug #6020) LOCK TABLE + delete returns error 208

- (Bug #6018) REPLACE does not work for BLOBs + NDB

- (Bug #6016) Strange crash with blobs + different DATABASES

- (Bug #5973) ndb table belonging to different database shows up in show tables

- (Bug #5872) ALTER TABLE with blob from ndb table to myisam fails

- (Bug #5844) Failing mysql-test-run leaves stray NDB processes behind

- (Bug #5824) HELP text messed up in ndb_mgm

- (Bug #5786) Duplicate key error after restore

- (Bug #5785) lock timeout during concurrent update

- (Bug #5782) Unknown error when using LIMIT with ndb table

- (Bug #5756) RESTART node from ndb_mgm fails

- A few more not reported [NDB] bugs fixed





MyNA Web Siteにて更に多くのニュース記事をよむことができます
http://www.mysql.gr.jp/frame

このニュース記事が掲載されているURL:
http://www.mysql.gr.jp/frame/article.php?storyid=29