[Maria-developers] Windows installer kick-off
Hi! It's time we've started to think of what we need of Windows installer (at the moment we're close to having windows "noinstall" zip archive but have nothing for installable package). I've filed some initial set of ideas and thoughts as MWL#55, http://askmonty.org/worklog/?tid=55. Any comments or input are welcome. ----- Forwarded message from worklog-noreply@askmonty.org ----- From: worklog-noreply@askmonty.org To: monty@askmonty.org Date: Wed, 14 Oct 2009 00:07:28 +0300 (EEST) Subject: [Maria-developers] Updated (by Psergey): Windows installer for MariaDB (55) ----------------------------------------------------------------------- WORKLOG TASK -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- TASK...........: Windows installer for MariaDB CREATION DATE..: Wed, 14 Oct 2009, 00:07 SUPERVISOR.....: Monty IMPLEMENTOR....: COPIES TO......: CATEGORY.......: Server-RawIdeaBin TASK ID........: 55 (http://askmonty.org/worklog/?tid=55) VERSION........: Server-9.x STATUS.........: Un-Assigned PRIORITY.......: 60 WORKED HOURS...: 0 ESTIMATE.......: 0 (hours remain) ORIG. ESTIMATE.: 0 PROGRESS NOTES: -=-=(Psergey - Wed, 14 Oct 2009, 00:07)=-=- High-Level Specification modified. --- /tmp/wklog.55.old.28205 2009-10-14 00:07:28.000000000 +0300 +++ /tmp/wklog.55.new.28205 2009-10-14 00:07:28.000000000 +0300 @@ -1 +1,50 @@ +Not a spec so far but a list of points to consider: + +1. Installer wishlist (user POV) +-------------------------------- +From the user point of view: + +1.1 Step 1: simplest installer +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +An installer package that +- Copies files on installation +- Registers mysqld a service +- Checks if installation directory, MySQL's port, or named pipe are + busy. If they are, it asks to remove the previous installation first + and aborts. +- Uninstall procedure (TODO: should that remove the datadir or leave it?) + +1.2 Step 2: upgrades from MySQL +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Same as above but with handling of the case where MySQL has been already + installed: + - offer to replace MySQL. + - upgrade the data directory (todo we should sort out if anything/what is + needed for this). + - Uninstall MySQL + - Install MariaDB. + +1.3 Step 3: Configuration wizard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Installer should include configuration wizard that's similar to what MySQL + installer does. + +1.1 Step 1 +~~~~~~~~~~ + +2. Installer wishlist (developer POV) +------------------------------------- +* Some "installshield-like" tool that's easy to use (suggestion by Webyog: + NSIS) +* Installation procedure source should reside in MariaDB source repository +* Installation procedure source file is better to be in human-readable text + format. +* It should be possible to automate creation of the installer package, in a way + that can be run from buildbot (e.g. the installer package build process + should print messages to its stdout) + +* Any suggestions on how can one automatically test the installation package? + (for example, we'll want to start the installer, install, check that + installation succeeded, then start the server, run some commands, then + uninstall. Any ways to achieve that?) DESCRIPTION: We need Windows Installer package for MariaDB. HIGH-LEVEL SPECIFICATION: Not a spec so far but a list of points to consider: 1. Installer wishlist (user POV) --------------------------------
From the user point of view:
1.1 Step 1: simplest installer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An installer package that - Copies files on installation - Registers mysqld a service - Checks if installation directory, MySQL's port, or named pipe are busy. If they are, it asks to remove the previous installation first and aborts. - Uninstall procedure (TODO: should that remove the datadir or leave it?) 1.2 Step 2: upgrades from MySQL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Same as above but with handling of the case where MySQL has been already installed: - offer to replace MySQL. - upgrade the data directory (todo we should sort out if anything/what is needed for this). - Uninstall MySQL - Install MariaDB. 1.3 Step 3: Configuration wizard ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Installer should include configuration wizard that's similar to what MySQL installer does. 1.1 Step 1 ~~~~~~~~~~ 2. Installer wishlist (developer POV) ------------------------------------- * Some "installshield-like" tool that's easy to use (suggestion by Webyog: NSIS) * Installation procedure source should reside in MariaDB source repository * Installation procedure source file is better to be in human-readable text format. * It should be possible to automate creation of the installer package, in a way that can be run from buildbot (e.g. the installer package build process should print messages to its stdout) * Any suggestions on how can one automatically test the installation package? (for example, we'll want to start the installer, install, check that installation succeeded, then start the server, run some commands, then uninstall. Any ways to achieve that?) ESTIMATED WORK TIME ESTIMATED COMPLETION DATE ----------------------------------------------------------------------- WorkLog (v3.5.9) _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp ----- End forwarded message ----- -- BR Sergey -- Sergey Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
The billion dollar question is: what options should a config wizard (ideally) provide? . base configuration (memory requirements, #of_connections assumed): use: mini, midi, medium. large, huge --template default storage engine: MyISAM, Maria, XtraDB, PBXT default charset: latin1, utf8, custom enable slow log: yes|no enable general log: yes|no enable query cache: yes|no .. what else is important? On Wed, Oct 14, 2009 at 00:10, Sergey Petrunya <psergey@askmonty.org> wrote:
Hi!
It's time we've started to think of what we need of Windows installer (at the moment we're close to having windows "noinstall" zip archive but have nothing for installable package).
I've filed some initial set of ideas and thoughts as MWL#55, http://askmonty.org/worklog/?tid=55. Any comments or input are welcome.
----- Forwarded message from worklog-noreply@askmonty.org -----
From: worklog-noreply@askmonty.org To: monty@askmonty.org Date: Wed, 14 Oct 2009 00:07:28 +0300 (EEST) Subject: [Maria-developers] Updated (by Psergey): Windows installer for MariaDB (55)
----------------------------------------------------------------------- WORKLOG TASK -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- TASK...........: Windows installer for MariaDB CREATION DATE..: Wed, 14 Oct 2009, 00:07 SUPERVISOR.....: Monty IMPLEMENTOR....: COPIES TO......: CATEGORY.......: Server-RawIdeaBin TASK ID........: 55 (http://askmonty.org/worklog/?tid=55) VERSION........: Server-9.x STATUS.........: Un-Assigned PRIORITY.......: 60 WORKED HOURS...: 0 ESTIMATE.......: 0 (hours remain) ORIG. ESTIMATE.: 0
PROGRESS NOTES:
-=-=(Psergey - Wed, 14 Oct 2009, 00:07)=-=- High-Level Specification modified. --- /tmp/wklog.55.old.28205 2009-10-14 00:07:28.000000000 +0300 +++ /tmp/wklog.55.new.28205 2009-10-14 00:07:28.000000000 +0300 @@ -1 +1,50 @@ +Not a spec so far but a list of points to consider: + +1. Installer wishlist (user POV) +-------------------------------- +From the user point of view: + +1.1 Step 1: simplest installer +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +An installer package that +- Copies files on installation +- Registers mysqld a service +- Checks if installation directory, MySQL's port, or named pipe are + busy. If they are, it asks to remove the previous installation first + and aborts. +- Uninstall procedure (TODO: should that remove the datadir or leave it?) + +1.2 Step 2: upgrades from MySQL +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Same as above but with handling of the case where MySQL has been already + installed: + - offer to replace MySQL. + - upgrade the data directory (todo we should sort out if anything/what is + needed for this). + - Uninstall MySQL + - Install MariaDB. + +1.3 Step 3: Configuration wizard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Installer should include configuration wizard that's similar to what MySQL + installer does. + +1.1 Step 1 +~~~~~~~~~~ + +2. Installer wishlist (developer POV) +------------------------------------- +* Some "installshield-like" tool that's easy to use (suggestion by Webyog: + NSIS) +* Installation procedure source should reside in MariaDB source repository +* Installation procedure source file is better to be in human-readable text + format. +* It should be possible to automate creation of the installer package, in a way + that can be run from buildbot (e.g. the installer package build process + should print messages to its stdout) + +* Any suggestions on how can one automatically test the installation package? + (for example, we'll want to start the installer, install, check that + installation succeeded, then start the server, run some commands, then + uninstall. Any ways to achieve that?)
DESCRIPTION:
We need Windows Installer package for MariaDB.
HIGH-LEVEL SPECIFICATION:
Not a spec so far but a list of points to consider:
1. Installer wishlist (user POV) --------------------------------
From the user point of view:
1.1 Step 1: simplest installer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An installer package that - Copies files on installation - Registers mysqld a service - Checks if installation directory, MySQL's port, or named pipe are busy. If they are, it asks to remove the previous installation first and aborts. - Uninstall procedure (TODO: should that remove the datadir or leave it?)
1.2 Step 2: upgrades from MySQL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Same as above but with handling of the case where MySQL has been already installed: - offer to replace MySQL. - upgrade the data directory (todo we should sort out if anything/what is needed for this). - Uninstall MySQL - Install MariaDB.
1.3 Step 3: Configuration wizard ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Installer should include configuration wizard that's similar to what MySQL installer does.
1.1 Step 1 ~~~~~~~~~~
2. Installer wishlist (developer POV) ------------------------------------- * Some "installshield-like" tool that's easy to use (suggestion by Webyog: NSIS) * Installation procedure source should reside in MariaDB source repository * Installation procedure source file is better to be in human-readable text format. * It should be possible to automate creation of the installer package, in a way that can be run from buildbot (e.g. the installer package build process should print messages to its stdout)
* Any suggestions on how can one automatically test the installation package? (for example, we'll want to start the installer, install, check that installation succeeded, then start the server, run some commands, then uninstall. Any ways to achieve that?)
ESTIMATED WORK TIME
ESTIMATED COMPLETION DATE ----------------------------------------------------------------------- WorkLog (v3.5.9)
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
----- End forwarded message -----
-- BR Sergey -- Sergey Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
Hi Peter On 14/10/2009, at 8:44 AM, Peter Laursen wrote:
The billion dollar question is: what options should a config wizard (ideally) provide? . base configuration (memory requirements, #of_connections assumed): use: mini, midi, medium. large, huge --template default storage engine: MyISAM, Maria, XtraDB, PBXT
InnoDB (XtraDB), that's the only mature transactional one from the above list. Also set sql_mode=TRADITIONAL both are actually what the original installer does for WIndows already.
default charset: latin1, utf8, custom
I left latin1 in the baseline config, but with comments to easily go to utf8 when needed.
enable slow log: yes|no
Yes, with a few extra options from the extensions, such as query_plan and the rate limiter.
enable general log: yes|no
never.
enable query cache: yes|no
yes but small.
.. what else is important?
We made a sane baseline config that's in the debian/ubuntu package tests already. Cheers, Arjen.
On Wed, Oct 14, 2009 at 00:10, Sergey Petrunya <psergey@askmonty.org> wrote: Hi!
It's time we've started to think of what we need of Windows installer (at the moment we're close to having windows "noinstall" zip archive but have nothing for installable package).
I've filed some initial set of ideas and thoughts as MWL#55, http://askmonty.org/worklog/?tid=55. Any comments or input are welcome.
----- Forwarded message from worklog-noreply@askmonty.org -----
From: worklog-noreply@askmonty.org To: monty@askmonty.org Date: Wed, 14 Oct 2009 00:07:28 +0300 (EEST) Subject: [Maria-developers] Updated (by Psergey): Windows installer for MariaDB (55)
----------------------------------------------------------------------- WORKLOG TASK -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =- TASK...........: Windows installer for MariaDB CREATION DATE..: Wed, 14 Oct 2009, 00:07 SUPERVISOR.....: Monty IMPLEMENTOR....: COPIES TO......: CATEGORY.......: Server-RawIdeaBin TASK ID........: 55 (http://askmonty.org/worklog/?tid=55) VERSION........: Server-9.x STATUS.........: Un-Assigned PRIORITY.......: 60 WORKED HOURS...: 0 ESTIMATE.......: 0 (hours remain) ORIG. ESTIMATE.: 0
PROGRESS NOTES:
-=-=(Psergey - Wed, 14 Oct 2009, 00:07)=-=- High-Level Specification modified. --- /tmp/wklog.55.old.28205 2009-10-14 00:07:28.000000000 +0300 +++ /tmp/wklog.55.new.28205 2009-10-14 00:07:28.000000000 +0300 @@ -1 +1,50 @@ +Not a spec so far but a list of points to consider: + +1. Installer wishlist (user POV) +-------------------------------- +From the user point of view: + +1.1 Step 1: simplest installer +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +An installer package that +- Copies files on installation +- Registers mysqld a service +- Checks if installation directory, MySQL's port, or named pipe are + busy. If they are, it asks to remove the previous installation first + and aborts. +- Uninstall procedure (TODO: should that remove the datadir or leave it?) + +1.2 Step 2: upgrades from MySQL +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Same as above but with handling of the case where MySQL has been already + installed: + - offer to replace MySQL. + - upgrade the data directory (todo we should sort out if anything/ what is + needed for this). + - Uninstall MySQL + - Install MariaDB. + +1.3 Step 3: Configuration wizard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Installer should include configuration wizard that's similar to what MySQL + installer does. + +1.1 Step 1 +~~~~~~~~~~ + +2. Installer wishlist (developer POV) +------------------------------------- +* Some "installshield-like" tool that's easy to use (suggestion by Webyog: + NSIS) +* Installation procedure source should reside in MariaDB source repository +* Installation procedure source file is better to be in human- readable text + format. +* It should be possible to automate creation of the installer package, in a way + that can be run from buildbot (e.g. the installer package build process + should print messages to its stdout) + +* Any suggestions on how can one automatically test the installation package? + (for example, we'll want to start the installer, install, check that + installation succeeded, then start the server, run some commands, then + uninstall. Any ways to achieve that?)
DESCRIPTION:
We need Windows Installer package for MariaDB.
HIGH-LEVEL SPECIFICATION:
Not a spec so far but a list of points to consider:
1. Installer wishlist (user POV) --------------------------------
From the user point of view:
1.1 Step 1: simplest installer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An installer package that - Copies files on installation - Registers mysqld a service - Checks if installation directory, MySQL's port, or named pipe are busy. If they are, it asks to remove the previous installation first and aborts. - Uninstall procedure (TODO: should that remove the datadir or leave it?)
1.2 Step 2: upgrades from MySQL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Same as above but with handling of the case where MySQL has been already installed: - offer to replace MySQL. - upgrade the data directory (todo we should sort out if anything/ what is needed for this). - Uninstall MySQL - Install MariaDB.
1.3 Step 3: Configuration wizard ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Installer should include configuration wizard that's similar to what MySQL installer does.
1.1 Step 1 ~~~~~~~~~~
2. Installer wishlist (developer POV) ------------------------------------- * Some "installshield-like" tool that's easy to use (suggestion by Webyog: NSIS) * Installation procedure source should reside in MariaDB source repository * Installation procedure source file is better to be in human- readable text format. * It should be possible to automate creation of the installer package, in a way that can be run from buildbot (e.g. the installer package build process should print messages to its stdout)
* Any suggestions on how can one automatically test the installation package? (for example, we'll want to start the installer, install, check that installation succeeded, then start the server, run some commands, then uninstall. Any ways to achieve that?)
ESTIMATED WORK TIME
ESTIMATED COMPLETION DATE ----------------------------------------------------------------------- WorkLog (v3.5.9)
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
----- End forwarded message -----
-- BR Sergey -- Sergey Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
-- Arjen Lentz, Exec.Director @ Open Query (http://openquery.com) Exceptional Services for MySQL at a fixed budget. Follow our blog at http://openquery.com/blog/ OurDelta: enhanced builds for MySQL @ http://ourdelta.org
On Wed, Oct 14, 2009 at 01:41, Arjen Lentz <arjen@openquery.com> wrote:
Hi Peter
On 14/10/2009, at 8:44 AM, Peter Laursen wrote:
The billion dollar question is: what options should a config wizard (ideally) provide? . base configuration (memory requirements, #of_connections assumed): use: mini, midi, medium. large, huge --template default storage engine: MyISAM, Maria, XtraDB, PBXT
InnoDB (XtraDB), that's the only mature transactional one from the above list. Also set sql_mode=TRADITIONAL
both are actually what the original installer does for WIndows already.
NOT TRUE!! The config wizard has option to 'use strict mode' or not. Also there is an option to select MyISAM versus InnoDB. When did you install on Windows last time using the .msi from MySQL. default charset: latin1, utf8, custom
I left latin1 in the baseline config, but with comments to easily go to utf8
when needed.
enable slow log: yes|no
Yes, with a few extra options from the extensions, such as query_plan and the rate limiter.
In the config wizard of a basic Windows installer? Come down to Earth, please!
enable general log: yes|no
never.
I did not get you
enable query cache: yes|no
yes but small.
.. what else is important?
We made a sane baseline config that's in the debian/ubuntu package tests already.
OK .. Arjen .. then you can easily write a config wizard for Windows too?
Cheers, Arjen.
Arjen: This is not at all helpful! Let us try together to list what requirements are for a Config Wizard for Windows. . What is very important is 'security settings': * apply root password * enable/disable root from remote hosts * optionally delete anonymous user So a config wizard will need to * generate a my.ini (modifying existing template or generate from scratch) * start server 1st time * after server start connect to server and insert/update/delete from mysql.user. This is actually a small client program that needs to be bundled? Peter
On Wed, Oct 14, 2009 at 00:10, Sergey Petrunya <psergey@askmonty.org>
wrote: Hi!
It's time we've started to think of what we need of Windows installer (at the moment we're close to having windows "noinstall" zip archive but have nothing for installable package).
I've filed some initial set of ideas and thoughts as MWL#55, http://askmonty.org/worklog/?tid=55. Any comments or input are welcome.
----- Forwarded message from worklog-noreply@askmonty.org -----
From: worklog-noreply@askmonty.org To: monty@askmonty.org Date: Wed, 14 Oct 2009 00:07:28 +0300 (EEST) Subject: [Maria-developers] Updated (by Psergey): Windows installer for MariaDB (55)
----------------------------------------------------------------------- WORKLOG TASK -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- TASK...........: Windows installer for MariaDB CREATION DATE..: Wed, 14 Oct 2009, 00:07 SUPERVISOR.....: Monty IMPLEMENTOR....: COPIES TO......: CATEGORY.......: Server-RawIdeaBin TASK ID........: 55 (http://askmonty.org/worklog/?tid=55) VERSION........: Server-9.x STATUS.........: Un-Assigned PRIORITY.......: 60 WORKED HOURS...: 0 ESTIMATE.......: 0 (hours remain) ORIG. ESTIMATE.: 0
PROGRESS NOTES:
-=-=(Psergey - Wed, 14 Oct 2009, 00:07)=-=- High-Level Specification modified. --- /tmp/wklog.55.old.28205 2009-10-14 00:07:28.000000000 +0300 +++ /tmp/wklog.55.new.28205 2009-10-14 00:07:28.000000000 +0300 @@ -1 +1,50 @@ +Not a spec so far but a list of points to consider: + +1. Installer wishlist (user POV) +-------------------------------- +From the user point of view: + +1.1 Step 1: simplest installer +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +An installer package that +- Copies files on installation +- Registers mysqld a service +- Checks if installation directory, MySQL's port, or named pipe are + busy. If they are, it asks to remove the previous installation first + and aborts. +- Uninstall procedure (TODO: should that remove the datadir or leave it?) + +1.2 Step 2: upgrades from MySQL +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Same as above but with handling of the case where MySQL has been already + installed: + - offer to replace MySQL. + - upgrade the data directory (todo we should sort out if anything/what is + needed for this). + - Uninstall MySQL + - Install MariaDB. + +1.3 Step 3: Configuration wizard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Installer should include configuration wizard that's similar to what MySQL + installer does. + +1.1 Step 1 +~~~~~~~~~~ + +2. Installer wishlist (developer POV) +------------------------------------- +* Some "installshield-like" tool that's easy to use (suggestion by Webyog: + NSIS) +* Installation procedure source should reside in MariaDB source repository +* Installation procedure source file is better to be in human-readable text + format. +* It should be possible to automate creation of the installer package, in a way + that can be run from buildbot (e.g. the installer package build process + should print messages to its stdout) + +* Any suggestions on how can one automatically test the installation package? + (for example, we'll want to start the installer, install, check that + installation succeeded, then start the server, run some commands, then + uninstall. Any ways to achieve that?)
DESCRIPTION:
We need Windows Installer package for MariaDB.
HIGH-LEVEL SPECIFICATION:
Not a spec so far but a list of points to consider:
1. Installer wishlist (user POV) --------------------------------
From the user point of view:
1.1 Step 1: simplest installer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An installer package that - Copies files on installation - Registers mysqld a service - Checks if installation directory, MySQL's port, or named pipe are busy. If they are, it asks to remove the previous installation first and aborts. - Uninstall procedure (TODO: should that remove the datadir or leave it?)
1.2 Step 2: upgrades from MySQL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Same as above but with handling of the case where MySQL has been already installed: - offer to replace MySQL. - upgrade the data directory (todo we should sort out if anything/what is needed for this). - Uninstall MySQL - Install MariaDB.
1.3 Step 3: Configuration wizard ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Installer should include configuration wizard that's similar to what MySQL installer does.
1.1 Step 1 ~~~~~~~~~~
2. Installer wishlist (developer POV) ------------------------------------- * Some "installshield-like" tool that's easy to use (suggestion by Webyog: NSIS) * Installation procedure source should reside in MariaDB source repository * Installation procedure source file is better to be in human-readable text format. * It should be possible to automate creation of the installer package, in a way that can be run from buildbot (e.g. the installer package build process should print messages to its stdout)
* Any suggestions on how can one automatically test the installation package? (for example, we'll want to start the installer, install, check that installation succeeded, then start the server, run some commands, then uninstall. Any ways to achieve that?)
ESTIMATED WORK TIME
ESTIMATED COMPLETION DATE ----------------------------------------------------------------------- WorkLog (v3.5.9)
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
----- End forwarded message -----
-- BR Sergey -- Sergey Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
-- Arjen Lentz, Exec.Director @ Open Query (http://openquery.com) Exceptional Services for MySQL at a fixed budget.
Follow our blog at http://openquery.com/blog/ OurDelta: enhanced builds for MySQL @ http://ourdelta.org
Hi Peter On 14/10/2009, at 6:19 PM, Peter Laursen wrote:
On Wed, Oct 14, 2009 at 01:41, Arjen Lentz <arjen@openquery.com> wrote: On 14/10/2009, at 8:44 AM, Peter Laursen wrote: The billion dollar question is: what options should a config wizard (ideally) provide? . base configuration (memory requirements, #of_connections assumed): use: mini, midi, medium. large, huge --template default storage engine: MyISAM, Maria, XtraDB, PBXT
InnoDB (XtraDB), that's the only mature transactional one from the above list. Also set sql_mode=TRADITIONAL
both are actually what the original installer does for WIndows already.
NOT TRUE!! The config wizard has option to 'use strict mode' or not. Also there is an option to select MyISAM versus InnoDB. When did you install on Windows last time using the .msi from MySQL.
The Sun/MySQL installer asks whether you're going to use transactions, and if so sets InnoDB as the default. The default is also for traditional mode, although you can indeed untick that. I don't quite see the cause for your agressive response, you may wish to reassess that.
default charset: latin1, utf8, custom
I left latin1 in the baseline config, but with comments to easily go to utf8 when needed.
enable slow log: yes|no
Yes, with a few extra options from the extensions, such as query_plan and the rate limiter.
In the config wizard of a basic Windows installer? Come down to Earth, please!
You were asking what the new MariaDB installer should provide, so I answered that.
enable general log: yes|no
never.
I did not get you
Don't enable the general log from the installer, ever.
enable query cache: yes|no
yes but small.
.. what else is important?
We made a sane baseline config that's in the debian/ubuntu package tests already.
OK .. Arjen .. then you can easily write a config wizard for Windows too?
Unfortunately the *nix installers don't do anything fancy, they simply put a sensible baseline config in place. E.g. this is a static config, but it'll work on all systems and provides extra commented info for people to easily adjust stuff. What you could do is use this same config on Windows, but ask the few extra questions that you can, the key ones being: - character sets - root password the simpler it is, the better. In the end, a production config needs to be custom tuned anyway and making a wizard tool more elaborate just distracts from the fact that such tuning is required. That's why I'm suggesting just a sensible baseline setup. I'd be happy to give you the one we have, it's also in the ourdelta- mariadb51-2 branch on launchpad. I actually want to place it upstream in MariaDB instead of the obsolete/crap my-*.cnf files. I'll discuss that with Kristian/Sergey. If that happens, you'll have the latest version always handy, and can easily tweak the few extra settings (like charset) that the windows installer would be able to ask.
Arjen: This is not at all helpful! Let us try together to list what requirements are for a Config Wizard for Windows.
You asked questions, I responded. Now blaming me for you not asking what you wanted to know is a tad rude, Peter. Chill out already. Cheers, Arjen. -- Arjen Lentz, Exec.Director @ Open Query (http://openquery.com) Exceptional Services for MySQL at a fixed budget. Follow our blog at http://openquery.com/blog/ OurDelta: enhanced builds for MySQL @ http://ourdelta.org
Hi!
"Peter" == Peter Laursen <peter_laursen@webyog.com> writes:
<cut> Peter> Arjen: This is not at all helpful! Let us try together to list what Peter> requirements are for a Config Wizard for Windows. Peter> . Peter> What is very important is 'security settings': Peter> * apply root password Peter> * enable/disable root from remote hosts Peter> * optionally delete anonymous user Peter> So a config wizard will need to Peter> * generate a my.ini (modifying existing template or generate from scratch) Peter> * start server 1st time Peter> * after server start connect to server and insert/update/delete from Peter> mysql.user. This is actually a small client program that needs to be Peter> bundled? Other things: Main question to ask is: - Is MariaDB the only thing you will run on this machine? (If yes, then generate a my.cnf file that will use all resources on the machine, if no, generate a my.cnf file that uses very little resources) - Offer to run mysql_upgrade (from within the wizard) if we detect old MySQL data. - Which storage engines to enable. (Imporant question to be able to generate the right .cnf file) - Strict mode (agree we should ask) By default, I don't think MySQL anymore has anonymous users on windows and then we shouldn't either. (Even if I think that for personal usage of a database that you can only access from localhost, having a password is not strictly necessary on windows) Regards, Monty
The billion dollar question is: what options should a config wizard (ideally) provide? . base configuration (memory requirements, #of_connections assumed): use: mini, midi, medium. large, huge --template default storage engine: MyISAM, Maria, XtraDB, PBXT default charset: latin1, utf8, custom enable slow log: yes|no enable general log: yes|no enable query cache: yes|no .. what else is important? Parameters that would allow to install multiple servers side-by side:
Hi! On Wed, Oct 14, 2009 at 12:44:01AM +0200, Peter Laursen wrote: port to listen on, named pipe name, perhaps windows service name. Binary log should probably always be enabled. I don't think work on installer should include development of a configurator that will cover all options. Imo, the goals of install-time configurator should be: * Allow one to get to runnable setup always. This means ability to specify install directory, port number, service name (i.e. allow to change any setting that might get into conflict with something). * Allow to change 'simple' options (e.g. what to use as default storage engine, sql_mode, and other stuff that a newcomer might be immediately interested in. I don't think it makes sense to offer the user to specify options like query_cache_size - there's hardly anybody who could come up with a meaningful value at install time. Most users won't know, those who know exactly will probably prefer to edit the config file over using installer's GUI.
On Wed, Oct 14, 2009 at 00:10, Sergey Petrunya <psergey@askmonty.org> wrote:
Hi!
It's time we've started to think of what we need of Windows installer (at the moment we're close to having windows "noinstall" zip archive but have nothing for installable package).
I've filed some initial set of ideas and thoughts as MWL#55, http://askmonty.org/worklog/?tid=55. Any comments or input are welcome.
----- Forwarded message from worklog-noreply@askmonty.org -----
From: worklog-noreply@askmonty.org To: monty@askmonty.org Date: Wed, 14 Oct 2009 00:07:28 +0300 (EEST) Subject: [Maria-developers] Updated (by Psergey): Windows installer for MariaDB (55)
----------------------------------------------------------------------- WORKLOG TASK -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- TASK...........: Windows installer for MariaDB CREATION DATE..: Wed, 14 Oct 2009, 00:07 SUPERVISOR.....: Monty IMPLEMENTOR....: COPIES TO......: CATEGORY.......: Server-RawIdeaBin TASK ID........: 55 (http://askmonty.org/worklog/?tid=55) VERSION........: Server-9.x STATUS.........: Un-Assigned PRIORITY.......: 60 WORKED HOURS...: 0 ESTIMATE.......: 0 (hours remain) ORIG. ESTIMATE.: 0
PROGRESS NOTES:
-=-=(Psergey - Wed, 14 Oct 2009, 00:07)=-=- High-Level Specification modified. --- /tmp/wklog.55.old.28205 2009-10-14 00:07:28.000000000 +0300 +++ /tmp/wklog.55.new.28205 2009-10-14 00:07:28.000000000 +0300 @@ -1 +1,50 @@ +Not a spec so far but a list of points to consider: + +1. Installer wishlist (user POV) +-------------------------------- +From the user point of view: + +1.1 Step 1: simplest installer +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +An installer package that +- Copies files on installation +- Registers mysqld a service +- Checks if installation directory, MySQL's port, or named pipe are + busy. If they are, it asks to remove the previous installation first + and aborts. +- Uninstall procedure (TODO: should that remove the datadir or leave it?) + +1.2 Step 2: upgrades from MySQL +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Same as above but with handling of the case where MySQL has been already + installed: + - offer to replace MySQL. + - upgrade the data directory (todo we should sort out if anything/what is + needed for this). + - Uninstall MySQL + - Install MariaDB. + +1.3 Step 3: Configuration wizard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Installer should include configuration wizard that's similar to what MySQL + installer does. + +1.1 Step 1 +~~~~~~~~~~ + +2. Installer wishlist (developer POV) +------------------------------------- +* Some "installshield-like" tool that's easy to use (suggestion by Webyog: + NSIS) +* Installation procedure source should reside in MariaDB source repository +* Installation procedure source file is better to be in human-readable text + format. +* It should be possible to automate creation of the installer package, in a way + that can be run from buildbot (e.g. the installer package build process + should print messages to its stdout) + +* Any suggestions on how can one automatically test the installation package? + (for example, we'll want to start the installer, install, check that + installation succeeded, then start the server, run some commands, then + uninstall. Any ways to achieve that?)
DESCRIPTION:
We need Windows Installer package for MariaDB.
HIGH-LEVEL SPECIFICATION:
Not a spec so far but a list of points to consider:
1. Installer wishlist (user POV) --------------------------------
From the user point of view:
1.1 Step 1: simplest installer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An installer package that - Copies files on installation - Registers mysqld a service - Checks if installation directory, MySQL's port, or named pipe are busy. If they are, it asks to remove the previous installation first and aborts. - Uninstall procedure (TODO: should that remove the datadir or leave it?)
1.2 Step 2: upgrades from MySQL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Same as above but with handling of the case where MySQL has been already installed: - offer to replace MySQL. - upgrade the data directory (todo we should sort out if anything/what is needed for this). - Uninstall MySQL - Install MariaDB.
1.3 Step 3: Configuration wizard ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Installer should include configuration wizard that's similar to what MySQL installer does.
1.1 Step 1 ~~~~~~~~~~
2. Installer wishlist (developer POV) ------------------------------------- * Some "installshield-like" tool that's easy to use (suggestion by Webyog: NSIS) * Installation procedure source should reside in MariaDB source repository * Installation procedure source file is better to be in human-readable text format. * It should be possible to automate creation of the installer package, in a way that can be run from buildbot (e.g. the installer package build process should print messages to its stdout)
* Any suggestions on how can one automatically test the installation package? (for example, we'll want to start the installer, install, check that installation succeeded, then start the server, run some commands, then uninstall. Any ways to achieve that?)
ESTIMATED WORK TIME
ESTIMATED COMPLETION DATE ----------------------------------------------------------------------- WorkLog (v3.5.9)
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
----- End forwarded message -----
-- BR Sergey -- Sergey Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
-- BR Sergey -- Sergey Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
Hi Sergey, all On 14/10/2009, at 6:41 PM, Sergey Petrunya wrote:
The billion dollar question is: what options should a config wizard (ideally) provide? . base configuration (memory requirements, #of_connections assumed): use: mini, midi, medium. large, huge --template default storage engine: MyISAM, Maria, XtraDB, PBXT default charset: latin1, utf8, custom enable slow log: yes|no enable general log: yes|no enable query cache: yes|no .. what else is important? Parameters that would allow to install multiple servers side-by side:
On Wed, Oct 14, 2009 at 12:44:01AM +0200, Peter Laursen wrote: port to listen on, named pipe name, perhaps windows service name. Binary log should probably always be enabled.
Forget the named pipe, since it's slower.
I don't think work on installer should include development of a configurator that will cover all options. Imo, the goals of install-time configurator should be:
* Allow one to get to runnable setup always. This means ability to specify install directory, port number, service name (i.e. allow to change any setting that might get into conflict with something).
install dir (default derived from version), service name, port number... yes.
* Allow to change 'simple' options (e.g. what to use as default storage engine, sql_mode, and other stuff that a newcomer might be immediately interested in.
A newcomer does not know enough to either sensibly decide on storage engine, or sql_mode. So we should pick what is sensible, and that's InnoDB with sql_mode=TRADITIONAL. As I noted, this is already what the Sun/MySQL Windows wizard defaults to, unless you specify that you don't want transactions. Now the latter is something I don't care for asking, because people really don't appreciate the implications of the question. Furthermore, it would be great to have MariaDB be ACID compliant "out of the box", on all platforms. And it'd be nice if the config on Windows would be (at least broadly) the same as on *nix.
I don't think it makes sense to offer the user to specify options like query_cache_size - there's hardly anybody who could come up with a meaningful value at install time. Most users won't know, those who know exactly will probably prefer to edit the config file over using installer's GUI.
Exactly. Cheers, Arjen. -- Arjen Lentz, Exec.Director @ Open Query (http://openquery.com) Exceptional Services for MySQL at a fixed budget. Follow our blog at http://openquery.com/blog/ OurDelta: enhanced builds for MySQL @ http://ourdelta.org
Hi!
"Arjen" == Arjen Lentz <arjen@openquery.com> writes:
Arjen> Hi Sergey, all Arjen> On 14/10/2009, at 6:41 PM, Sergey Petrunya wrote:
The billion dollar question is: what options should a config wizard (ideally) provide? . base configuration (memory requirements, #of_connections assumed): use: mini, midi, medium. large, huge --template default storage engine: MyISAM, Maria, XtraDB, PBXT default charset: latin1, utf8, custom enable slow log: yes|no enable general log: yes|no enable query cache: yes|no .. what else is important? Parameters that would allow to install multiple servers side-by side:
On Wed, Oct 14, 2009 at 12:44:01AM +0200, Peter Laursen wrote: port to listen on, named pipe name, perhaps windows service name. Binary log should probably always be enabled.
Arjen> Forget the named pipe, since it's slower. As far as I remember if you access MySQL with named pipes from another machine it's faster than sockets. (I did the testing at the same time we got the named pipe code).
From the internet I find:
http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-p... "In simple performance tests, it appears that named pipe access is between 30%-50% faster than the standard TCP/IP access. However, this varies per system, and named pipes are slower than TCP/IP in many Windows configurations." and: http://www.waltercedric.com/component/content/article/1217.html "We were testing successfuly MySQL 5.0 using named pipe, and what an increase in speed! 50% in the case of this big project" So it seams that you can gain a lot or loose a bit. <cut> Regards, Monty
Hi Monty On 14/10/2009, at 10:57 PM, Michael Widenius wrote:
"Arjen" == Arjen Lentz <arjen@openquery.com> writes: Arjen> On 14/10/2009, at 6:41 PM, Sergey Petrunya wrote: On Wed, Oct 14, 2009 at 12:44:01AM +0200, Peter Laursen wrote: The billion dollar question is: what options should a config wizard (ideally) provide? . base configuration (memory requirements, #of_connections assumed): use: mini, midi, medium. large, huge --template default storage engine: MyISAM, Maria, XtraDB, PBXT default charset: latin1, utf8, custom enable slow log: yes|no enable general log: yes|no enable query cache: yes|no .. what else is important? Parameters that would allow to install multiple servers side-by side: port to listen on, named pipe name, perhaps windows service name. Binary log should probably always be enabled.
Arjen> Forget the named pipe, since it's slower.
As far as I remember if you access MySQL with named pipes from another machine it's faster than sockets. (I did the testing at the same time we got the named pipe code).
From the internet I find:
http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-p... "In simple performance tests, it appears that named pipe access is between 30%-50% faster than the standard TCP/IP access. However, this varies per system, and named pipes are slower than TCP/IP in many Windows configurations."
and: http://www.waltercedric.com/component/content/article/1217.html "We were testing successfuly MySQL 5.0 using named pipe, and what an increase in speed! 50% in the case of this big project"
So it seams that you can gain a lot or loose a bit.
<cut>
Ahye sorry I stand corrected. Got my logic memory reversed ;-) thanks! ok so we do want a pipe. Cheers, Arjen. -- Arjen Lentz, Exec.Director @ Open Query (http://openquery.com) Exceptional Services for MySQL at a fixed budget. Follow our blog at http://openquery.com/blog/ OurDelta: enhanced builds for MySQL @ http://ourdelta.org
I agree with Arjen about named pipe. Almost nobody use it anyway. On Wed, Oct 14, 2009 at 11:51, Arjen Lentz <arjen@openquery.com> wrote:
Hi Sergey, all
On 14/10/2009, at 6:41 PM, Sergey Petrunya wrote:
On Wed, Oct 14, 2009 at 12:44:01AM +0200, Peter Laursen wrote:
The billion dollar question is: what options should a config wizard (ideally) provide? . base configuration (memory requirements, #of_connections assumed): use: mini, midi, medium. large, huge --template default storage engine: MyISAM, Maria, XtraDB, PBXT default charset: latin1, utf8, custom enable slow log: yes|no enable general log: yes|no enable query cache: yes|no .. what else is important?
Parameters that would allow to install multiple servers side-by side: port to listen on, named pipe name, perhaps windows service name. Binary log should probably always be enabled.
Forget the named pipe, since it's slower.
I don't think work on installer should include development of a
configurator that will cover all options. Imo, the goals of install-time configurator should be:
* Allow one to get to runnable setup always. This means ability to specify install directory, port number, service name (i.e. allow to change any setting that might get into conflict with something).
install dir (default derived from version), service name, port number... yes.
* Allow to change 'simple' options (e.g. what to use as default storage
engine, sql_mode, and other stuff that a newcomer might be immediately interested in.
A newcomer does not know enough to either sensibly decide on storage engine, or sql_mode. So we should pick what is sensible, and that's InnoDB with sql_mode=TRADITIONAL. As I noted, this is already what the Sun/MySQL Windows wizard defaults to, unless you specify that you don't want transactions. Now the latter is something I don't care for asking, because people really don't appreciate the implications of the question. Furthermore, it would be great to have MariaDB be ACID compliant "out of the box", on all platforms. And it'd be nice if the config on Windows would be (at least broadly) the same as on *nix.
I don't think it makes sense to offer the user to specify options like
query_cache_size - there's hardly anybody who could come up with a meaningful value at install time. Most users won't know, those who know exactly will probably prefer to edit the config file over using installer's GUI.
Exactly.
Cheers, Arjen. -- Arjen Lentz, Exec.Director @ Open Query (http://openquery.com) Exceptional Services for MySQL at a fixed budget.
Follow our blog at http://openquery.com/blog/ OurDelta: enhanced builds for MySQL @ http://ourdelta.org
1) Another important point is that the installer should include an Application Manifest for compability with Windows "Program Compatibility Assistant" (PCA) of recent Windows versions. If not recent Windows will popup error messages when installing. 2) What here has been decribed as related to 'Vista' should be 'Vista and higher'. It also applies to Win2008, Win7 and Win2008r2. Do not forget those. Win7 will be the dominant Windows variant in a few months I believe (and it deserves it as it is much better than both XP and Vista). Nobody should develop for Windows on 2K/XP/2003 these days. Get a copy of Win7 64 bit and use it. . 3) I can see that quite a lot of comments came here. I had no time to study in detail. I will try in the weekend. . 4) 64 bit server for Windows will very soon be more important than 32 bit server I think (at least for production environments). Also note that MySQL only distribute 'snapshots' from "MySQL labs" as 64 bit. 32 bit Windows is dead as regards new systems (with the possible exception of netbooks - I do not know if the CPUs used for those are 64 bit or not). . Peter Webyog On Wed, Oct 14, 2009 at 10:41, Sergey Petrunya <psergey@askmonty.org> wrote:
Hi!
The billion dollar question is: what options should a config wizard (ideally) provide? . base configuration (memory requirements, #of_connections assumed): use: mini, midi, medium. large, huge --template default storage engine: MyISAM, Maria, XtraDB, PBXT default charset: latin1, utf8, custom enable slow log: yes|no enable general log: yes|no enable query cache: yes|no .. what else is important? Parameters that would allow to install multiple servers side-by side:
On Wed, Oct 14, 2009 at 12:44:01AM +0200, Peter Laursen wrote: port to listen on, named pipe name, perhaps windows service name. Binary log should probably always be enabled.
I don't think work on installer should include development of a configurator that will cover all options. Imo, the goals of install-time configurator should be:
* Allow one to get to runnable setup always. This means ability to specify install directory, port number, service name (i.e. allow to change any setting that might get into conflict with something).
* Allow to change 'simple' options (e.g. what to use as default storage engine, sql_mode, and other stuff that a newcomer might be immediately interested in.
I don't think it makes sense to offer the user to specify options like query_cache_size - there's hardly anybody who could come up with a meaningful value at install time. Most users won't know, those who know exactly will probably prefer to edit the config file over using installer's GUI.
On Wed, Oct 14, 2009 at 00:10, Sergey Petrunya <psergey@askmonty.org> wrote:
Hi!
It's time we've started to think of what we need of Windows installer (at the moment we're close to having windows "noinstall" zip archive but have nothing for installable package).
I've filed some initial set of ideas and thoughts as MWL#55, http://askmonty.org/worklog/?tid=55. Any comments or input are welcome.
----- Forwarded message from worklog-noreply@askmonty.org -----
From: worklog-noreply@askmonty.org To: monty@askmonty.org Date: Wed, 14 Oct 2009 00:07:28 +0300 (EEST) Subject: [Maria-developers] Updated (by Psergey): Windows installer for MariaDB (55)
----------------------------------------------------------------------- WORKLOG TASK -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- TASK...........: Windows installer for MariaDB CREATION DATE..: Wed, 14 Oct 2009, 00:07 SUPERVISOR.....: Monty IMPLEMENTOR....: COPIES TO......: CATEGORY.......: Server-RawIdeaBin TASK ID........: 55 (http://askmonty.org/worklog/?tid=55) VERSION........: Server-9.x STATUS.........: Un-Assigned PRIORITY.......: 60 WORKED HOURS...: 0 ESTIMATE.......: 0 (hours remain) ORIG. ESTIMATE.: 0
PROGRESS NOTES:
-=-=(Psergey - Wed, 14 Oct 2009, 00:07)=-=- High-Level Specification modified. --- /tmp/wklog.55.old.28205 2009-10-14 00:07:28.000000000 +0300 +++ /tmp/wklog.55.new.28205 2009-10-14 00:07:28.000000000 +0300 @@ -1 +1,50 @@ +Not a spec so far but a list of points to consider: + +1. Installer wishlist (user POV) +-------------------------------- +From the user point of view: + +1.1 Step 1: simplest installer +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +An installer package that +- Copies files on installation +- Registers mysqld a service +- Checks if installation directory, MySQL's port, or named pipe are + busy. If they are, it asks to remove the previous installation first + and aborts. +- Uninstall procedure (TODO: should that remove the datadir or leave it?) + +1.2 Step 2: upgrades from MySQL +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Same as above but with handling of the case where MySQL has been already + installed: + - offer to replace MySQL. + - upgrade the data directory (todo we should sort out if anything/what is + needed for this). + - Uninstall MySQL + - Install MariaDB. + +1.3 Step 3: Configuration wizard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Installer should include configuration wizard that's similar to what MySQL + installer does. + +1.1 Step 1 +~~~~~~~~~~ + +2. Installer wishlist (developer POV) +------------------------------------- +* Some "installshield-like" tool that's easy to use (suggestion by Webyog: + NSIS) +* Installation procedure source should reside in MariaDB source repository +* Installation procedure source file is better to be in human-readable text + format. +* It should be possible to automate creation of the installer package, in a way + that can be run from buildbot (e.g. the installer package build process + should print messages to its stdout) + +* Any suggestions on how can one automatically test the installation package? + (for example, we'll want to start the installer, install, check that + installation succeeded, then start the server, run some commands, then + uninstall. Any ways to achieve that?)
DESCRIPTION:
We need Windows Installer package for MariaDB.
HIGH-LEVEL SPECIFICATION:
Not a spec so far but a list of points to consider:
1. Installer wishlist (user POV) --------------------------------
From the user point of view:
1.1 Step 1: simplest installer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An installer package that - Copies files on installation - Registers mysqld a service - Checks if installation directory, MySQL's port, or named pipe are busy. If they are, it asks to remove the previous installation first and aborts. - Uninstall procedure (TODO: should that remove the datadir or leave it?)
1.2 Step 2: upgrades from MySQL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Same as above but with handling of the case where MySQL has been already installed: - offer to replace MySQL. - upgrade the data directory (todo we should sort out if anything/what is needed for this). - Uninstall MySQL - Install MariaDB.
1.3 Step 3: Configuration wizard ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Installer should include configuration wizard that's similar to what MySQL installer does.
1.1 Step 1 ~~~~~~~~~~
2. Installer wishlist (developer POV) ------------------------------------- * Some "installshield-like" tool that's easy to use (suggestion by Webyog: NSIS) * Installation procedure source should reside in MariaDB source repository * Installation procedure source file is better to be in human-readable text format. * It should be possible to automate creation of the installer package, in a way that can be run from buildbot (e.g. the installer package build process should print messages to its stdout)
* Any suggestions on how can one automatically test the installation package? (for example, we'll want to start the installer, install, check that installation succeeded, then start the server, run some commands, then uninstall. Any ways to achieve that?)
ESTIMATED WORK TIME
ESTIMATED COMPLETION DATE ----------------------------------------------------------------------- WorkLog (v3.5.9)
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
----- End forwarded message -----
-- BR Sergey -- Sergey Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
-- BR Sergey -- Sergey Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
Hi Peter, On Thu, Oct 15, 2009 at 09:28:33PM +0200, Peter Laursen wrote:
1) Another important point is that the installer should include an Application Manifest for compability with Windows "Program Compatibility Assistant" (PCA) of recent Windows versions. If not recent Windows will popup error messages when installing. I would expect something like that to be handled by the installer (in the same way like it handles, e.g. unpacking files). At the moment we assume that MySQL/MariaDB themselves use WinAPI in a way that's compatible with Vista (and higher).
2) What here has been decribed as related to 'Vista' should be 'Vista and higher'. It also applies to Win2008, Win7 and Win2008r2. Do not forget those. Win7 will be the dominant Windows variant in a few months I believe (and it deserves it as it is much better than both XP and Vista). Nobody should develop for Windows on 2K/XP/2003 these days. Get a copy of Win7 64 bit and use it. I'm afraid I'll be using Win7 in the same way I'm using XP (for fixing build errors) and that alone won't bring any improvement. Are there any specific properties or new features that we should look at?
3) I can see that quite a lot of comments came here. I had no time to study in detail. I will try in the weekend. . 4) 64 bit server for Windows will very soon be more important than 32 bit server I think (at least for production environments). Also note that MySQL only distribute 'snapshots' from "MySQL labs" as 64 bit. 32 bit Windows is dead as regards new systems (with the possible exception of netbooks - I do not know if the CPUs used for those are 64 bit or not). 64-bit Windows builds are on our todo. Am I correct in my understanding that we'll need to produce two installer packages (one for 32-bit, one for 64), but installation script will be the same for both (like the C++ source code is)?
BR Sergey -- Sergey Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
Hi, I noticed there is a lot of activity around installer right now. There are couple of things in the Sun/MySQL installer that I believe were done wrong. I thought it is a good idea to point to some mistakes in MySQL and share thoughts on what can be done better in MariaDB. MySQL installs and runs under SYSTEM account. It is a big no-no by all security measures (the account is akin to Unix root). I think I should not explain what a can happen if there is some buffer overflow in the server code that can be exploited by sending a specially crafted packet. Installations of server software I have seen, do not do that. They create a special group, a special non-privileged user and are running service under that non-privileged user. Sounds familiar?(yes, this is what has been recommended for mysql on Unix since ever) . So MariaDB installer - could create a user mariadbuser if not exists. - create a group mariadb if not exists. - add mariadbuser to the group mariadb. - add user who runs the installer to the group mariadb, maybe asking with a pre-checked checkbox (this is for convenience, because this user will likely want to edit the config files) - when creating a database directory, - assuming C:\ProgramData\MariaDB will be default root directory for databases, assign read/write permissions to the mariadb group (+ Administrators). - store config file in the database directory . In MySQL, my.cnf is stored it in ProgramFiles, which makes it all but non-trivial to edit the file with an editor, even for admins (they need a to run editor under Windows equivalent of "sudo", i.e with elevation). This is a big usability problem and source of couple of bugs. This is what Peter (who if I remember correctly filed one of these bugs) refers to as "UAC Problem". - Of course, user and group should be documented. Re. ConfigWizard, I do not know. MySQL's one has a nice UI, but the functionality is really very basic. Maybe it just makes sense not to ask user at all, set reasonable defaults and allow people to edit config file afterwards (this would already make MariaDB much friendly towards users than Sun/MySQL installation. Personally, I'd be happy even if generated my.cnf would contain the bare minimum required mysqld to run( datadir and basedir), nothing else. Lastly, it would be cool, if Maria had a native mysql_install_db on Windows .Batch wrapper around JScript, VBScript, command line executable, whatever, just no bash and no perl please ;)It should do a bit more than on Unix, i.e create a minimalistic my.cnf and register the new service. As the things stand today, currently with Windows there is no documented way for people to create a non-default mysql instance, except copying the directory which comes with installation (and after user tables are created, the directory it is not very usable anymore). And this is pretty ugly. And yes, the new mysql_install_db.bat can/should can be integrated into the installer . It obsoletes then the build-time "cross-bootstrap", where mysql_install_db that runs on Unix with a single purpose is to generate initial database to be used inside Windows zip and installer. Vladislav. PS: Don't know whether it is interesting for MariaDB, but I just noticed that a high profile MS-installer guru and an open-source friendly guy is offering his consulting services. http://robmensching.com/ It is Rob Mensching, the author of Wix toolkit, the first and one of the most widely known Open Source products by Microsoft. If I understood correctly, his main job is still at Microsoft in Office installer team , and he is doing consulting in his free time. Disclaimer: I do not know him personally, (but if I used WiX back in the days) so it is not a shameless plug:) But I really believe that if someone like him helps with installer, then the result would be good:) It might make sense to get in touch.
The discussion about under what user privileges the server should run is also ongoing in MySQL context. Actually I agree with Vlad that a 'mysql' user and group (like unix) would be preferable sometimes (live sites). It can also be done on Windows just like on Unix. Problem is that for many Windows users it will be a completely new thing and a mystery to some. I am not sure it is the time to change this now. On Sat, Oct 17, 2009 at 01:38, Vladislav Vaintroub <wlad@sun.com> wrote:
Hi,
I noticed there is a lot of activity around installer right now. There are couple of things in the Sun/MySQL installer that I believe were done wrong. I thought it is a good idea to point to some mistakes in MySQL and share thoughts on what can be done better in MariaDB.
MySQL installs and runs under SYSTEM account. It is a big no-no by all security measures (the account is akin to Unix root). I think I should not explain what a can happen if there is some buffer overflow in the server code that can be exploited by sending a specially crafted packet. Installations of server software I have seen, do not do that. They create a special group, a special non-privileged user and are running service under that non-privileged user. Sounds familiar?(yes, this is what has been recommended for mysql on Unix since ever) .
So MariaDB installer - could create a user mariadbuser if not exists. - create a group mariadb if not exists. - add mariadbuser to the group mariadb. - add user who runs the installer to the group mariadb, maybe asking with a pre-checked checkbox (this is for convenience, because this user will likely want to edit the config files) - when creating a database directory, - assuming C:\ProgramData\MariaDB will be default root directory for databases, assign read/write permissions to the mariadb group (+ Administrators). - store config file in the database directory . In MySQL, my.cnf is stored it in ProgramFiles, which makes it all but non-trivial to edit the file with an editor, even for admins (they need a to run editor under Windows equivalent of "sudo", i.e with elevation). This is a big usability problem and source of couple of bugs. This is what Peter (who if I remember correctly filed one of these bugs) refers to as "UAC Problem". - Of course, user and group should be documented.
Re. ConfigWizard, I do not know. MySQL's one has a nice UI, but the functionality is really very basic. Maybe it just makes sense not to ask user at all, set reasonable defaults and allow people to edit config file afterwards (this would already make MariaDB much friendly towards users than Sun/MySQL installation. Personally, I'd be happy even if generated my.cnf would contain the bare minimum required mysqld to run( datadir and basedir), nothing else.
Lastly, it would be cool, if Maria had a native mysql_install_db on Windows .Batch wrapper around JScript, VBScript, command line executable, whatever, just no bash and no perl please ;)It should do a bit more than on Unix, i.e create a minimalistic my.cnf and register the new service. As the things stand today, currently with Windows there is no documented way for people to create a non-default mysql instance, except copying the directory which comes with installation (and after user tables are created, the directory it is not very usable anymore). And this is pretty ugly. And yes, the new mysql_install_db.bat can/should can be integrated into the installer . It obsoletes then the build-time "cross-bootstrap", where mysql_install_db that runs on Unix with a single purpose is to generate initial database to be used inside Windows zip and installer.
Vladislav.
PS: Don't know whether it is interesting for MariaDB, but I just noticed that a high profile MS-installer guru and an open-source friendly guy is offering his consulting services. http://robmensching.com/
It is Rob Mensching, the author of Wix toolkit, the first and one of the most widely known Open Source products by Microsoft. If I understood correctly, his main job is still at Microsoft in Office installer team , and he is doing consulting in his free time. Disclaimer: I do not know him personally, (but if I used WiX back in the days) so it is not a shameless plug:) But I really believe that if someone like him helps with installer, then the result would be good:) It might make sense to get in touch.
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Hi!
"Vladislav" == Vladislav Vaintroub <wlad@sun.com> writes:
Vladislav> Hi, Vladislav> I noticed there is a lot of activity around installer right now. There are Vladislav> couple of things in the Sun/MySQL installer that I believe were done wrong. Vladislav> I thought it is a good idea to point to some mistakes in MySQL and share Vladislav> thoughts on what can be done better in MariaDB. <cut> Vladislav> Re. ConfigWizard, I do not know. MySQL's one has a nice UI, but the Vladislav> functionality is really very basic. Maybe it just makes sense not to ask Vladislav> user at all, set reasonable defaults and allow people to edit config file Vladislav> afterwards (this would already make MariaDB much friendly towards users than Vladislav> Sun/MySQL installation. Personally, I'd be happy even if generated my.cnf Vladislav> would contain the bare minimum required mysqld to run( datadir and basedir), Vladislav> nothing else. I would like to at least have one question: - Can we allocate all resources on this machine to MariaDB? (This is good when running benchmarks or setting up a dedicated server that only runs MariadB). Vladislav> Lastly, it would be cool, if Maria had a native mysql_install_db on Windows Vladislav> .Batch wrapper around JScript, VBScript, command line executable, whatever, Vladislav> just no bash and no perl please ;)It should do a bit more than on Unix, i.e Vladislav> create a minimalistic my.cnf and register the new service. As the things Vladislav> stand today, currently with Windows there is no documented way for people to Vladislav> create a non-default mysql instance, except copying the directory which Vladislav> comes with installation (and after user tables are created, the directory it Vladislav> is not very usable anymore). And this is pretty ugly. And yes, the new Vladislav> mysql_install_db.bat can/should can be integrated into the installer . It Vladislav> obsoletes then the build-time "cross-bootstrap", where mysql_install_db Vladislav> that runs on Unix with a single purpose is to generate initial database to Vladislav> be used inside Windows zip and installer. Agree about mysql_install_db. I don't see any reason why we couldn't create a .bat script that could do what mysql_install_db does. Thanks a lot for the comments! Vladislav> Vladislav. Vladislav> PS: Don't know whether it is interesting for MariaDB, but I just noticed Vladislav> that a high profile MS-installer guru and an open-source friendly guy is Vladislav> offering his consulting services. Vladislav> http://robmensching.com/ Vladislav> It is Rob Mensching, the author of Wix toolkit, the first and one of the Vladislav> most widely known Open Source products by Microsoft. If I understood Vladislav> correctly, his main job is still at Microsoft in Office installer team , and Vladislav> he is doing consulting in his free time. Disclaimer: I do not know him Vladislav> personally, (but if I used WiX back in the days) so it is not a shameless Vladislav> plug:) But I really believe that if someone like him helps with installer, Vladislav> then the result would be good:) It might make sense to get in touch. Thanks for this suggestion too! Regards, Monty
-----Original Message----- From: Michael Widenius [mailto:monty@askmonty.org] Sent: Saturday, October 17, 2009 12:03 PM To: Vladislav Vaintroub Cc: maria-developers@lists.launchpad.net Subject: Re: [Maria-developers] Windows installer kick-off
I would like to at least have one question:
- Can we allocate all resources on this machine to MariaDB? (This is good when running benchmarks or setting up a dedicated server that only runs MariadB).
I believe this is not going to be too easy as an automated installer task. The problem here is that MariaDB like MySQL has different engines and these storage engines all got different performance knobs - buffer pool sizes and the like. Thus, many server variables depend on the amount of RAM you want to give to the instance (which might be say 70% or the whole RAM on the box for the dedicated server scenario) and additionally they depend on the default storage engine. How config wizard handles that: ConfigWizard uses a template similar to those small.ini, huge.ini, but instead of hardcoding the numbers for buffer sizes, calculates them using user input. Default engine is determined by workload type like Decision support or OLTP, amount of RAM for the instance is determined by installation type (dedicated server/developers machine). Other parameters are merely derived from those 2. Just to give an idea what template fragment might look like (do not have sources now so the syntax is defintitely wrong, but should be ok for illustration purposes). #!if $default_engine == innodb innodb-buffer-pool=0.7*$instance_memory #!endif This config template thus turns out to be a script with own syntax. ConfigWizard interprets it and outputs the final my.cnf. Now, repeating what ConfigWizard does, might be bit overhead for version 1 installer in MariaDB. Not that it cannot be done, it can and tools could be chosen more appropriately, maybe some windows-native scripting language (JScript?). But, as already said, it is not going to be all too easy.
Hi!
"Vladislav" == Vladislav Vaintroub <wlad@sun.com> writes:
-----Original Message----- From: Michael Widenius [mailto:monty@askmonty.org] Sent: Saturday, October 17, 2009 12:03 PM To: Vladislav Vaintroub Cc: maria-developers@lists.launchpad.net Subject: Re: [Maria-developers] Windows installer kick-off
I would like to at least have one question:
- Can we allocate all resources on this machine to MariaDB? (This is good when running benchmarks or setting up a dedicated server that only runs MariadB).
Vladislav> I believe this is not going to be too easy as an automated installer task. Vladislav> The problem here is that MariaDB like MySQL has different engines and these Vladislav> storage engines all got different performance knobs - buffer pool sizes and Vladislav> the like. Thus, many server variables depend on the amount of RAM you want Vladislav> to give to the instance (which might be say 70% or the whole RAM on the box Vladislav> for the dedicated server scenario) and additionally they depend on the Vladislav> default storage engine. If we just have one question, we can choose the best default storage engine for him. With only one storage engine active, it's much easier to allocate memory. This is a good setup for someone that just wants to install and run things. Fine tuning can be done by modifying my.cnf when the users knows more and the initial tests has shown that MySQL is up to the task... <cut> Regards, Monty
My point was that if you never used Windows above XP, UAC and PCA could very well fool you when it comes to installing. So you should have a basic understanding of it! Yes in my understanding the same installer package will work with 32 bit and 64 bit (with the possibility that some file names will be different). -- Peter On Thu, Oct 15, 2009 at 23:53, Sergey Petrunya <psergey@askmonty.org> wrote:
Hi Peter,
On Thu, Oct 15, 2009 at 09:28:33PM +0200, Peter Laursen wrote:
1) Another important point is that the installer should include an Application Manifest for compability with Windows "Program Compatibility Assistant" (PCA) of recent Windows versions. If not recent Windows will popup error messages when installing. I would expect something like that to be handled by the installer (in the same way like it handles, e.g. unpacking files). At the moment we assume that MySQL/MariaDB themselves use WinAPI in a way that's compatible with Vista (and higher).
2) What here has been decribed as related to 'Vista' should be 'Vista and higher'. It also applies to Win2008, Win7 and Win2008r2. Do not forget those. Win7 will be the dominant Windows variant in a few months I believe (and it deserves it as it is much better than both XP and Vista). Nobody should develop for Windows on 2K/XP/2003 these days. Get a copy of Win7 64 bit and use it. I'm afraid I'll be using Win7 in the same way I'm using XP (for fixing build errors) and that alone won't bring any improvement. Are there any specific properties or new features that we should look at?
3) I can see that quite a lot of comments came here. I had no time to study in detail. I will try in the weekend. . 4) 64 bit server for Windows will very soon be more important than 32 bit server I think (at least for production environments). Also note that MySQL only distribute 'snapshots' from "MySQL labs" as 64 bit. 32 bit Windows is dead as regards new systems (with the possible exception of netbooks - I do not know if the CPUs used for those are 64 bit or not). 64-bit Windows builds are on our todo. Am I correct in my understanding that we'll need to produce two installer packages (one for 32-bit, one for 64), but installation script will be the same for both (like the C++ source code is)?
BR Sergey -- Sergey Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
participants (5)
-
Arjen Lentz
-
Michael Widenius
-
Peter Laursen
-
Sergey Petrunya
-
Vladislav Vaintroub