Bug #17599 The server doesn't give a warning when --log is specified but log table is used
Submitted: 20 Feb 2006 20:33 Modified: 10 Aug 2006 15:52
Reporter: Andrey Hristov Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Logging Severity:S3 (Non-critical)
Version:5.1.8-debug OS:Linux (SuSE 9.3)
Assigned to: Petr Chardin CPU Architecture:Any

[20 Feb 2006 20:33] Andrey Hristov
Description:
If one has installed the new log tables in the mysql schema, when she starts the server with  --log=xyz.txt or have equivalent option in my.cnf the server does not give a warning that it won't use the file but instead will use the log table. Maybe it's also good one to be able to switch between tables and files, even though the logs are written in a CSV format. Could be that the logs should be written on different partition.

How to repeat:
./mysql --log=/tmp/sample.txt
[22 Feb 2006 11:59] Valeriy Kravchuk
Verified just as described with 5.1.8-BK (ChangeSet@1.2158, 2006-02-22 08:32:58+01:00):

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| plugin                    |
| proc                      |
| procs_priv                |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
21 rows in set (0.00 sec)

mysql> exit
Bye
openxs@suse:~/dbs/5.1> bin/mysqladmin -uroot shutdown
STOPPING server from pid file /home/openxs/dbs/5.1/var/suse.pid
060213 20:54:26  mysqld ended

[1]+  Done                    bin/mysqld_safe
openxs@suse:~/dbs/5.1> bin/mysqld_safe --log=/tmp/suse.log &
[1] 20458
openxs@suse:~/dbs/5.1> Starting mysqld daemon with databases from /home/openxs/d
bs/5.1/var

openxs@suse:~/dbs/5.1> tail var/suse.err
060213 20:54:23  InnoDB: Starting shutdown...
060213 20:54:26  InnoDB: Shutdown completed; log sequence number 0 43655
060213 20:54:26 [Note] /home/openxs/dbs/5.1/libexec/mysqld: Shutdown complete

060213 20:54:26  mysqld ended

060213 20:54:44  mysqld started
060213 20:54:44  InnoDB: Started; log sequence number 0 43655
060213 20:54:44 [Note] /home/openxs/dbs/5.1/libexec/mysqld: ready for connections.
Version: '5.1.8-beta-log'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
[4 Mar 2006 13:46] Konstantin Osipov
Petr, shouldn't the command line option be preferred in this case?
[9 Mar 2006 9:31] Geert Vanderkelen
This tricked my aswell as I forgot to run mysql_upgrade (SHAME ON ME!!!) when going 5.0 to 5.1 and I just wondered for 10 minutes why no log file was created!

--log-ouptut=TABLE is default, but a warning would be nice when one of the log tables is missing too..
[20 Jul 2006 11:50] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/9378
[20 Jul 2006 13:03] Petr Chardin
Added warnings in case the patch is specified. For the case, when
there are no log tables server aready throws an error:
"[ERROR] Failed to initialize log tables. Falling back to the old-fashioned logs"
[24 Jul 2006 12:23] Tomash Brechko
The patch is approved my e-mail.
[2 Aug 2006 16:07] Konstantin Osipov
Pushed into 5.1-runtime
[10 Aug 2006 10:12] Tomash Brechko
Pushed to 5.1.12.
[10 Aug 2006 15:52] Paul Dubois
Noted in 5.1.12 changelog.

If a filename was specified for the --log or --log-slow_queries
options but the server was logging to tables and not files, the
server produced no error message.