# @GENTOO_PORTAGE_EPREFIX@/etc/mysql/my.cnf: The global mysql configuration file.
# $Header: /var/cvsroot/gentoo-x86/dev-db/mariadb/files/my.cnf-5.1,v 1.3 2013/01/20 02:39:55 robbat2 Exp $

# The following options will be passed to all MySQL clients
[client]
#password					= your_password
port						= 3306
socket						= @GENTOO_PORTAGE_EPREFIX@/var/run/mysqld/mysqld.sock

[mysql]
character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
default-character-set=utf8

[mysqladmin]
character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
default-character-set=utf8

[mysqlcheck]
character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
default-character-set=utf8

[mysqldump]
character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
default-character-set=utf8

[mysqlimport]
character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
default-character-set=utf8

[mysqlshow]
character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
default-character-set=utf8

[myisamchk]
character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets

[myisampack]
character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets

# use [safe_mysqld] with mysql-3
[mysqld_safe]
err-log						= @GENTOO_PORTAGE_EPREFIX@/var/log/mysql/mysql.err

# add a section [mysqld-4.1] or [mysqld-5.0] for specific configurations
[mysqld]
character-set-server		= utf8
user 						= mysql
port 						= 3306
socket 						= @GENTOO_PORTAGE_EPREFIX@/var/run/mysqld/mysqld.sock
pid-file 					= @GENTOO_PORTAGE_EPREFIX@/var/run/mysqld/mysqld.pid
log-error 					= @GENTOO_PORTAGE_EPREFIX@/var/log/mysql/mysqld.err
basedir 					= @GENTOO_PORTAGE_EPREFIX@/usr
datadir 					= @DATADIR@
skip-external-locking
key_buffer 					= 16M
max_allowed_packet 			= 1M
table_open_cache 			= 64
sort_buffer_size 			= 512K
net_buffer_length 			= 8K
read_buffer_size 			= 256K
read_rnd_buffer_size 		= 512K
myisam_sort_buffer_size 	= 8M
language 					= @GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/english

# security:
# using "localhost" in connects uses sockets by default
# skip-networking
bind-address				= 127.0.0.1

log-bin
server-id 					= 1

# point the following paths to different dedicated disks
tmpdir 						= @GENTOO_PORTAGE_EPREFIX@/tmp/
#log-update 				= @GENTOO_PORTAGE_EPREFIX@/path-to-dedicated-directory/hostname

# you need the debug USE flag enabled to use the following directives,
# if needed, uncomment them, start the server and issue 
# #tail -f @GENTOO_PORTAGE_EPREFIX@/tmp/mysqld.sql @GENTOO_PORTAGE_EPREFIX@/tmp/mysqld.trace
# this will show you *exactly* what's happening in your server ;)

#log						= @GENTOO_PORTAGE_EPREFIX@/tmp/mysqld.sql
#gdb
#debug						= d:t:i:o,/tmp/mysqld.trace
#one-thread

# uncomment the following directives if you are using BDB tables
#bdb_cache_size				= 4M
#bdb_max_lock				= 10000

# the following is the InnoDB configuration
# if you wish to disable innodb instead
# uncomment just the next line
#skip-innodb
#
# the rest of the innodb config follows:
# don't eat too much memory, we're trying to be safe on 64Mb boxes
# you might want to bump this up a bit on boxes with more RAM
innodb_buffer_pool_size = 16M
# this is the default, increase it if you have lots of tables
innodb_additional_mem_pool_size = 2M
#
# i'd like to use @GENTOO_PORTAGE_EPREFIX@/var/lib/mysql/innodb, but that is seen as a database :-(
# and upstream wants things to be under @GENTOO_PORTAGE_EPREFIX@/var/lib/mysql/, so that's the route
# we have to take for the moment
#innodb_data_home_dir		= @GENTOO_PORTAGE_EPREFIX@/var/lib/mysql/
#innodb_log_arch_dir		= @GENTOO_PORTAGE_EPREFIX@/var/lib/mysql/
#innodb_log_group_home_dir	= @GENTOO_PORTAGE_EPREFIX@/var/lib/mysql/
# you may wish to change this size to be more suitable for your system
# the max is there to avoid run-away growth on your machine
innodb_data_file_path = ibdata1:10M:autoextend:max:128M
# we keep this at around 25% of of innodb_buffer_pool_size
# sensible values range from 1MB to (1/innodb_log_files_in_group*innodb_buffer_pool_size)
innodb_log_file_size = 5M
# this is the default, increase it if you have very large transactions going on
innodb_log_buffer_size = 8M
# this is the default and won't hurt you
# you shouldn't need to tweak it
innodb_log_files_in_group=2
# see the innodb config docs, the other options are not always safe
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_file_per_table

[mysqldump]
quick
max_allowed_packet 			= 16M

[mysql]
# uncomment the next directive if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer 					= 20M
sort_buffer_size 			= 20M
read_buffer 				= 2M
write_buffer 				= 2M

[myisamchk]
key_buffer 					= 20M
sort_buffer_size 			= 20M
read_buffer 				= 2M
write_buffer 				= 2M

[mysqlhotcopy]
interactive-timeout
