Differences between revisions 2 and 3
Revision 2 as of 2013-09-02 09:30:16
Size: 2582
Editor: ?OttoKekalainen
Comment:
Revision 3 as of 2013-09-02 20:57:05
Size: 3235
Editor: ?ClintByrum
Comment: Annotating my thoughts -SpamapS
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
 * Simply writing '''apt-get install mariadb-server''' will install MariaDB 5.5.x and replace any existing MySQL 5.5.x installation and inherit the databases and configuration files of it.
 * MariaDB packages have in the control files [[http://www.debian.org/doc/debian-policy/ch-relationships.html|Provides+Breaks+Replaces]] for equivalent MySQL packages, so that it is impossible to install both at the same time.
 * Upstream MariaDB 5.5.x advertises to be a binary-compatible replacement for MySQL 5.5.x (but not anymore in MySQL 5.6 vs. MariaDB 10.0). Anything that works with MySQL 5.5 will work with MariaDB 5.5. Migrating from MySQL 5.5. to MariaDB 5.5. will always work. The contrary might not always be true, as at least MariaDB 5.5 libraries (/usr/lib/x86_64-linux-gnu/libmariadbclient.so.18.0.0) have more symbols than the MySQL version.
 * Simply writing '''apt-get install mariadb-server''' will install MariaDB 5.5.x and replace any existing MySQL 5.5.x installation and inherit the databases and configuration files of it.''The inverse should be true too -SpamapS''
 * MariaDB packages have in the control files [[http://www.debian.org/doc/debian-policy/ch-relationships.html|Provides+Breaks+Replaces]] for equivalent MySQL packages, so that it is impossible to install both at the same time.''I am dubious about Provides for most things. mysql-server and mysql-client are the only real exceptions, so that recommending packages won't cause a removal.-SpamapS''
 * Upstream MariaDB 5.5.x advertises to be a binary-compatible replacement for MySQL 5.5.x (but not anymore in MySQL 5.6 vs. MariaDB 10.0). Anything that works with MySQL 5.5 will work with MariaDB 5.5. Migrating from MySQL 5.5. to MariaDB 5.5. will always work. The contrary might not always be true, as at least MariaDB 5.5 libraries (/usr/lib/x86_64-linux-gnu/libmariadbclient.so.18.0.0) have more symbols than the MySQL version. ''Once 5.6 enters Debian, mariadb using /var/lib/mysql becomes a huge problem. Perhaps we should NOT have them automatically share data.-SpamapS''
Line 12: Line 12:
 * MariaDB 5.5 can always use a my.cnf that originates from MySQL 5.5, but it might not work the other way around if the user has added some MariaDB-specific parameters in the my.cnf.
 * The package mysql-common does not have any equivalent mariadb-common, but MariaDB packages depend on mysql-common. The '''default''' my.cnf should always be compatible with all MySQL and MariaDB versions (5.5, 5.6, 10.0 and foreseeable future).
 * MariaDB 5.5 can always use a my.cnf that originates from MySQL 5.5, but it might not work the other way around if the user has added some MariaDB-specific parameters in the my.cnf.''Any options which are unique to one or the other must never appear in a shipped my.cnf-SpamapS''
 * The package mysql-common does not have any equivalent mariadb-common, but MariaDB packages depend on mysql-common. The '''default''' my.cnf should always be compatible with all MySQL and MariaDB versions (5.5, 5.6, 10.0 and foreseeable future).''I think you'll be better off having mariadb's packages depend on mariadb-common, which in turn depends on mysql-common. This will allow divergence in the future (such as when we have MySQL 5.6''

Current master (for debian/* packaging) at: https://github.com/ottok/pkg-mariadb

Pending upload at: https://mentors.debian.net/package/mariadb-5.5

How MariaDB works:

  • Simply writing apt-get install mariadb-server will install MariaDB 5.5.x and replace any existing MySQL 5.5.x installation and inherit the databases and configuration files of it.The inverse should be true too -SpamapS

  • MariaDB packages have in the control files Provides+Breaks+Replaces for equivalent MySQL packages, so that it is impossible to install both at the same time.I am dubious about Provides for most things. mysql-server and mysql-client are the only real exceptions, so that recommending packages won't cause a removal.-SpamapS

  • Upstream MariaDB 5.5.x advertises to be a binary-compatible replacement for MySQL 5.5.x (but not anymore in MySQL 5.6 vs. MariaDB 10.0). Anything that works with MySQL 5.5 will work with MariaDB 5.5. Migrating from MySQL 5.5. to MariaDB 5.5. will always work. The contrary might not always be true, as at least MariaDB 5.5 libraries (/usr/lib/x86_64-linux-gnu/libmariadbclient.so.18.0.0) have more symbols than the MySQL version. Once 5.6 enters Debian, mariadb using /var/lib/mysql becomes a huge problem. Perhaps we should NOT have them automatically share data.-SpamapS

  • Possible "interfaces" of MySQL 5.5 are the server and client binaries (can be used e.g. in shell scripts), the actual server interface (used remotely via port 3306 or locally via socket /var/run/mysqld/mysqld.sock) and the binary interfaces (/usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0 and some symbolic links to it, installable from package libmysqlclient18). MariaDB has all of these, plus the extra libmariadbclient18.x.

  • As upstream MariaDB 5.5 is quite a young fork of MySQL, all of the internal file names still have mysql in them, the database files are in the same location, the configuration file /etc/mysql/my.cnf is the same, the port 3306 is the same etc.

  • In Debian packages, libmysqlclient.so has been renamed to libmariadbclient.so to enable both versions to be installable side-by-side. Initial checking did not find that MySQL nor MariaDB would themselves use the shared libs, but have their own libs statically linked in. These shared libs are meant only for third party usage, and the libs themselves will use whatever server is installed (MySQL or MariaDB).

  • MariaDB 5.5 can always use a my.cnf that originates from MySQL 5.5, but it might not work the other way around if the user has added some MariaDB-specific parameters in the my.cnf.Any options which are unique to one or the other must never appear in a shipped my.cnf-SpamapS

  • The package mysql-common does not have any equivalent mariadb-common, but MariaDB packages depend on mysql-common. The default my.cnf should always be compatible with all MySQL and MariaDB versions (5.5, 5.6, 10.0 and foreseeable future).I think you'll be better off having mariadb's packages depend on mariadb-common, which in turn depends on mysql-common. This will allow divergence in the future (such as when we have MySQL 5.6