An enhanced, drop-in replacement for MySQL.
MariaDB strives to be the logical choice for database professionals looking for a robust, scalable, and reliable SQL server. To accomplish this, the MariaDB Foundation work closely and cooperatively with the larger community of users and developers in the true spirit of Free and open source software, and release software in a manner that balances predictability with reliability.
This charm deploys MariaDB using packages but uses the same charm structure as
the MySQL charm for the sake of compatability.
To deploy a MySQL service:
juju deploy mariadb
Once deployed, you can retrive the MySQL root user password by logging in to the machine via juju ssh and reading the /var/lib/mysql/mysql.passwd file. To log in as root MySQL User at the MySQL console you can issue the following:
juju ssh mariadb/0
mysql -u root -p`sudo cat /var/lib/mysql/mysql.passwd`
MySQL supports the ability to replicate databases to slave instances. This
allows you, for example, to load balance read queries across multiple slaves or
use a slave to perform backups, all whilst not impeding the master's
To deploy a slave:
# deploy second service
juju deploy mariadb mariadb-slave
# add master to slave relation
juju add-relation mariadb:master mariadb-slave:slave
Any changes to the master are reflected on the slave.
Any queries that modify the database(s) should be applied to the master only.
The slave should be treated strictly as read only.
You can add further slaves with:
juju add-unit mariadb-slave
This charm provides relations that support monitoring via either Nagios or Munin. Refer to the appropriate charm for usage.
You can tweak various options to optimize your MariaDB deployment:
max-connections - Maximum connections allowed to server or '-1' for default.
preferred-storage-engine - A comma separated list of storage engines to
optimize for. First in the list is marked as default storage engine. 'InnoDB'
or 'MyISAM' are acceptable values.
tuning-level - Specify 'safest', 'fast' or 'unsafe' to choose required
transaction safety. This option determines the flush value for innodb commit
and binary logs. Specify 'safest' for full ACID compliance. 'fast' relaxes the
compliance for performance and 'unsafe' will remove most restrictions.
dataset-size - Memory allocation for all caches (InnoDB buffer pool, MyISAM
key, query). Suffix value with 'K', 'M', 'G' or 'T' to indicate unit of
kilobyte, megabyte, gigabyte or terabyte respectively. Suffix value with '%'
to use percentage of machine's total memory.
query-cache-type - Specify 'ON', 'DEMAND' or 'OFF' to turn query cache on,
selectively (dependent on queries) or off.
query-cache-size - Size of query cache (no. of bytes) or '-1' to use 20%
of memory allocation.
Each of these can be applied by running:
juju set <service> <option>=<value>
juju set mariadb preferred-storage-engine=InnoDB
juju set mariadb dataset-size=50%
juju set mariadb query-cache-type=ON
juju set mariadb query-cache-size=-1