Description:
I started 32-bit version of mysqld and specified a 4095M key_buffer_size, which is too large for a 32-bit process to allocate.
E:\mysql-5.1.24-rc-win32\bin>mysqld --console --skip-grant-tables --skip-name-resolve --key_buffer_size=4095M --log-warn=2
080426 10:34:35  InnoDB: Started; log sequence number 0 46409
080426 10:34:35 [Note] mysqld: ready for connections.
Version: '5.1.24-rc-community'  socket: ''  port: 3306  MySQL Community Server (GPL)
Why is there no error or warning?
mysql> show global status like '%key%';
+------------------------+-----------+
| Variable_name          | Value     |
+------------------------+-----------+
| Com_assign_to_keycache | 4805      |
| Com_preload_keys       | 5         |
| Com_show_keys          | 1         |
| Handler_read_key       | 9005232   |
| Key_blocks_not_flushed | 35306     |
| Key_blocks_unused      | 268918    |
| Key_blocks_used        | 897278    |
| Key_read_requests      | 418183673 |
| Key_reads              | 1420543   |
| Key_write_requests     | 103367402 |
| Key_writes             | 57003844  |
+------------------------+-----------+
11 rows in set (0.01 sec)
mysql> select @@global.key_buffer_size;
+--------------------------+
| @@global.key_buffer_size |
+--------------------------+
|               4293918720 |
+--------------------------+
1 row in set (0.05 sec)
Task manager showed 1.3G of memory used up.
How to repeat:
mysqld --console --skip-grant-tables --skip-name-resolve --key_buffer_size=4095M --log-warn=2