To do this I believe you would create a master zone named "." in your named.conf (comment out the default "." zone with the hints information). Then, create a zone file which contains a series of wildcard records for the IP that you want to have everyone directed to.
If other people will be connecting their own computers to this network for the meeting, then keep in mind that some people will use their own DNS settings (OpenDNS, Google Public DNS, etc.) instead of the DNS server issued by DHCP, so unless you're blocking DNS at the firewall there is still a way around it. An HTTP proxy server at your routing point might be a better solution if that is the case.
In short, There's no easy answer.
But if you have no other choice then to log errors on server rather then in client app, you [Luke] can use the source.
I give directions rather then patch, and it may apply differently to your mysqld version.
In mysql source dir, in file sql/sql_parce.cc, in function
void mysql_parse(THD *thd, const char *inBuf, uint length, const char ** found_semicolon)
after statement
bool err= parse_sql(thd, & parser_state, NULL);
in else
clause to following if(!err)
statement, that looks like
else
{
DBUG_ASSERT(thd->is_error());
DBUG_PRINT("info",("Command aborted. Fatal_error: %d",
thd->is_fatal_error));
query_cache_abort(&thd->net);
}
insert string like DBUG_PRINT("info",("query was: %s",inBuf));
so it should look like
else
{
DBUG_ASSERT(thd->is_error());
DBUG_PRINT("info",("Command aborted. Fatal_error: %d",
thd->is_fatal_error));
DBUG_PRINT("info",("Query was: %s",inBuf));
query_cache_abort(&thd->net);
}
Then, run ./configure with flag --with-debug (among others that you use), build, and run mysqld command with flags as usual, but add debugging flag -#d,info:f,mysql_parse, well, just like this:
sudo -u mysql /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 -#d,info:f,mysql_parse
then, what you've got in output looks like this:
100605 3:05:55 InnoDB: Started; log sequence number 2 2219911338
100605 3:05:56 [Note] Event Scheduler: Loaded 0 events
100605 3:05:56 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.37-1ubuntu5.1-debug-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)
mysql_parse: info: Command aborted. Fatal_error: 0
mysql_parse: info: query was: aldjflsajlfjslfjlsfkjlsdjflsjfljsdlkfjsdf
Also, you may find useful these links:
http://dev.mysql.com/doc/refman/5.0/en/making-trace-files.html
http://dev.mysql.com/doc/refman/5.0/en/the-dbug-package.html
Hope that helps.
Best Answer
Put the right sort of channel stanza in your logging{} block in named.conf.
would probably do the trick. That should get you this sort of data:
EDIT: Warning - enabling this sort of logging will generate very large log files very quickly, and could easily fill up your disk without having some sort of log rotation/compression, and is probably best suited to a brief data-gathering session, rather than a permanent configuration.
If that (along with post-processing the resulting log file) is too much, you could do this using a tool like tcpdump.
or even better, writing a filter to match on only the right bits of the DNS packet that you want to filter on (the A? type in this case)
Probably easier, though, is to use a tool like dnstop. dnstop webpage will do all the protocol decoding for you, and IIRC you can filter it's output using -n to limit what it captures to a single domain.