Hi,
Please see attached HTML. Note that the options in green are those
recommended by MySQL for a "small" memory machine, say 512MB. Gratia
does not mind if they are optimized for larger (or smaller) systems,
but they should be set to *something*. Options that are *absolutely
necessary* for correct gratia operation are colored in red, and
innodb_flush_log_at_trx_commit is strongly desired in order to
minimize the chances of corruption and increase the chances of being
able to diagnose and fix it.
Please let me know if you have any remaining questions or problems
with these configuration options.
Thanks,
Chris.
--
Chris Green <greenc@fnal.gov>, FNAL CD/SCF/GRID; 'phone (630) 840-2167.
IRC: greenc@jabber.fnal.gov, ChrisGreen@jabber.dsd.lbl.gov;
chissgreen (AIM, Yahoo); chissg@hotmail.com (MSNM);
chris.h.green (Google Talk).
[mysqld]
datadir=/usr/local/osg-collector/vdt-app-data/mysql5/var
user=mysql
port=49152
socket=/usr/local/osg-collector/vdt-app-data/mysql5/var/mysql.sock
# Note that all the following options in green are those given in
MySQL's example
# configuration file for a "small" (~512MB) memory system.
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size=512
net_buffer_length=8
read_buffer_size=256
read_rnd_buffer_size=512
myisam_sort_buffer_size = 8M
# Required for InnoDB
log-bin=mysql-bin
# Creates a binary log for transaction logging and rollback purposes.
autocommit = false
# Required for correct
# Gratia operation. Does not affect non-transactional engines (eg
# MyISAM). When set to false, assume all commands are part of a
# transaction that must be ended with a COMMIT or ROLLBACK.
# This behavior ay be altered on a per-connection basis if necessary.
log_bin_trust_function_creators=1
# Required for triggers and stored procedures with binary logging
# unless systematic measures are taken to declare what each function
# does that may not be reproducible. From the manual:
# By default, for a CREATE FUNCTION statement to be accepted,
# DETERMINISTIC or one of NO SQL and READS SQL DATA must be specified
# explicitly. Otherwise an error occurs:
#
# ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL,
# or READS SQL DATA in its declaration and binary logging is enabled
# (you *might* want to use the less safe log_bin_trust_function_creators
# variable)
#
# Assessment of the nature of a function is based on the "honesty" of
the
# creator: MySQL does not check that a function declared DETERMINISTIC
is
# free of statements that produce non-deterministic results.
innodb_buffer_pool_size = 16M
Memory use option appropriate for 512MB system
innodb_additional_mem_pool_size = 2M
Memory use option appropriate for 512MB system
innodb_log_file_size = 5M
# The size in bytes of each log file in a log
# group. Appropriate based on memory use options, above.
innodb_log_files_in_group = 2
# The number of log files in the log group. InnoDB writes to the files
in a
# circular fashion. The default (and recommended) is 2.
innodb_log_buffer_size = 8M
# The size in bytes of the buffer that InnoDB uses to write to the log
# files on disk. Sensible values range from 1MB to 8MB. The default is
1MB.
# A large log buffer allows large transactions to run without a need to
# write the log to disk before the transactions commit. Thus, if you
have
# big transactions, making the log buffer larger saves disk I/O.
innodb_lock_wait_timeout = 50
# The timeout in seconds an InnoDB transaction may wait for a lock
before
# being rolled back. InnoDB automatically detects transaction
deadlocks in its
# own lock table and rolls back the transaction. The default is 50
seconds.
# A lock wait for a MySQL table lock does not happen inside InnoDB,
and this
# timeout does not apply to that wait.
expire_logs_days = 7
# Number of days after which to expire binary
logs. The number is optional but a heavily loaded Gratia collector
will produce
a lot of log data which needs to be cleaned up periodically.
innodb_file_per_table
# If this variable is enabled, InnoDB creates each new table using its
# own .ibd file for storing data and indexes, rather than in the shared
# tablespace.
innodb_flush_log_at_trx_commit = 1
When this value is 1 (the default), the log buffer is written out to the
# log file at each transaction commit and the flush to disk operation is
# performed on the log file.
# The default value of this variable is 1, which is the value that is
# required for ACID compliance. This is definitely desired for the
case where we're trying to
# diagnose and/or fix DB corruption.
[client]
port=49152
socket=/usr/local/osg-collector/vdt-app-data/mysql5/var/mysql.sock