# @GENTOO_PORTAGE_EPREFIX@/etc/mysql/my.cnf: The global mysql configuration file.

# 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/mariadb/charsets
default-character-set=utf8

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

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

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

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

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

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

[myisampack]
character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mariadb/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_size				= 16M
max_allowed_packet 			= 4M
table_open_cache 			= 400
sort_buffer_size 			= 512K
net_buffer_length 			= 16K
read_buffer_size 			= 256K
read_rnd_buffer_size 		= 512K
myisam_sort_buffer_size 	= 8M
lc_messages_dir			= @GENTOO_PORTAGE_EPREFIX@/usr/share/mariadb
#Set this to your desired error message language
lc_messages			= en_US

# 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

# 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 = 128M
#
# 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 = 48M
# 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

# Uncomment this to get FEDERATED engine support
#plugin-load=federated=ha_federated.so
loose-federated

[mysqldump]
quick
max_allowed_packet 			= 16M

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

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

[myisamchk]
key_buffer_size				= 20M
sort_buffer_size 			= 20M
read_buffer_size			= 2M
write_buffer_size			= 2M

[mysqlhotcopy]
interactive-timeout

[mariadb]
