← Back to team overview

maria-discuss team mailing list archive

Re: Bundle more relevant cnf files in MariaDB package



> -----Original Message-----
> From: Arjen Lentz [mailto:arjen@xxxxxxxxxxxxx]
> Sent: Freitag, 1. April 2011 03:58
> To: Vladislav Vaintroub
> Cc: 'Haidong Ji'; 'Maria Discuss'
> Subject: Re: [Maria-discuss] Bundle more relevant cnf files in MariaDB
> package
> Hi Vladislav
> thanks for your reply, excellent feedback!
> comments below.

Hi Arjen,
thanks for following up.

> > +pid-file	= /var/run/mysqld/mysqld.pid
> > +basedir		= /usr
> > +tmpdir		= /tmp
> > +language	= /usr/share/mysql/english
> > +!includedir /etc/mysql/conf.d/
> > Yet, it is used on Windows as my-example.ini, and in tar.gz as
> > my-example.cnf.  My question is : why hardcoding paths, you can
> > influence
> > them anyway with compile-time settings. Also, tmpdir has already a
> > sane
> > default, or has not it?
> I think so.
> To clarify, the origin of this baseline config is Open Query's daily
> work. We took to explicitly defining all these aspects, to unbreak
> things regardless of the build source (binary tarball, RPM, DEB) as
> they all do things slightly differently (see below) and some distro-
> builds (e.g. those by RedHat themselves, etc) are different again.

This rings a bell. "slightly different" packaging is something that took a
long time to do during cmake transition in 5.5, and we introduced
MYSQL_SOCKET cmake-time variables for exactly this purpose(
http://forge.mysql.com/wiki/CMake#Fine-tuning_installation_paths) at that
time , and there were still incompatibilities with legacy autotools builds,
hopefully not that  many(I have not noticed many bugs about it). Build team
at Oracle expressed some interest/willingness to further eliminate some of
the layout differences , but I do not know what happened with that idea
after I have left.

> Of course, in the stock mysql.com you have the config wizard that
> takes care of creating a baseline config. I'm not sure what the
> current setup is for MariaDB and its Windows installer... 

In current (5.2-main and 5.3-main MSI-based) setup, user can specify the
datadirectory, port and root password, when database is created. Config file
is tiny and typically has only datadir and port here and in no way
"optimized". Windows packages are  relocatable, hence I  do not need either
basedir nor language. Except missing  sizes parameters, there is a
difference to default MySQL installation in that sql_mode is not set
(default in MySQL installations  is strict) and storage engine is not set
(default in MySQL installations is innodb). For me, it sounds like  we could
make many users happy, if we had a pre-selected "Quick configuration"
checkbox  (nothing wizard-driven), that would

-set sql_mode to strict
-set default storage engine to innodb
- give 12.5% or so of RAM to Innodb buffer pool  (clearly not suitable for
dedicated machines, but dedicated installs will need tweaking parameters
anyway) . 12.5%RAM  is something I borrowed from the ConfigWizard's default
- set innodb log file size to a reasonable value, because changing this
parameter afterwards is cumbersome.

Ideally there would be an integer input field with "how much memory (in MB)
do you want to dedicate to this MariaDB instance" with  12.5%RAM  being

My initial thought when the whole discussion about improved templates has
started started was to reuse the "one true template" for windows.  But now
I'm not really sure, anything I have seen so far would not run on Windows
when used as-is, and  (for my own taste) overspecified, often repeating
defaults.  I personally would prefer a minimal OS-agnostic template,  but I
think way forward is to go on and roll out my own solution  for those 4
extra parameters.

> somewhere along there we can resolve that separately. Since Windows is
> not a *nix, all the paths are different. All other platforms are *nix
> based. Right?

*nix is not *nix,  its standards can't agree with each other. MySQL
packaging legacy adds yet another dimension to it. RPM package layout is
different from DEB package layout and  different from tar.gz. On Solaris,
packages are getting installed into /opt , on OSX  and after "make install"
to /usr/local/mysql.  And so on. The hardcoded paths will still be issue

> Regards,
> Arjen.
> --
> Arjen Lentz, Exec.Director @ Open Query (http://openquery.com)
> Remote expertise & maintenance for MySQL/MariaDB server environments.
> Follow us at http://openquery.com/blog/ & http://twitter.com/openquery

Follow ups