-----Original Message----- From: Arjen Lentz [mailto:arjen@openquery.com] 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 INSTALL_LAYOUT=STANDALONE|RPM|DEB|SVR4 CMake ,along with MYSQL_DATADIR and 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 default. 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 there.
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