I really enjoy using cloud-based virtual servers for testing MariaDB and MySQL deployments. With automation scripts, it's fast and easy to create environments that match what customers are using to solve issues quicker. For example, with just a couple of commands, we can bring up a replication cluster with one master and two slaves, running a specific MySQL version, and run tests to find a memory leak.
MariaDB 5.5.38 was recently released (it is the latest MariaDB 5.5), and is available for download here:
https://downloads.mariadb.org/mariadb/5.5.38/
This is a maintenance release, and so there are not too many big changes of note, just a number of normal bug fixes. However, there are a few items worth mentioning:
- Includes all bugfixes and updates from 5.5.38
Introduction:
To run MariaDB from Eclipse we will actually create and install the tar.gz package resulting from compilation(See Part 2) in a separate directory, this will allow us to have MariaDB cleanly installed on a separate location and so it will be also easily possible to run it independently from Eclipse.
In these Blog posts series we assume:
yoda as developer user
Section 2: "COMPILE MARIADB IN ECLIPSE"
2.1 Download and prepare sources folder/>
We will need a directory to use as our playground, if you create
the user yoda in Section 1:
$ su - yoda
$ mkdir -p ~/playground
Download latest MariaDB 10 sources tar.gz and copy the archive into the above directory, you can latest sources from:
This guide will help you in compiling and debugging MariaDB (MySQL, Percona) within the Eclipse IDE on Linux and using cmake for source project preparation. It will be split in parts to keep each post lightweight and with a finite objective. At the end of reading this series of blog posts you should be able to:
- Prepare for compilation any MariaDB (MySQL, Percona) source release based on cmake framework.
MariaDB 5.5.37 was recently released (it is the latest MariaDB 5.5), and is available for download here:
https://downloads.mariadb.org/mariadb/5.5.37/
This is a maintenance release, and so there are not too many big changes of note, just a number of normal bug fixes. However, there are a few items worth mentioning:
- Includes all bugfixes and updates from MySQL 5.5.37
If you are installing MySQL ODBC Driver and encounter the following error:
Error 1918. Error installing ODBC driver MySQL ODBC 5.1 Driver, ODBC error 13: The setup routines for the MySQL ODBC 5.1 Driver could not be loaded due to system error code 126: The specified module could not be found. ...\myodbc5S.dll).. Verify...
Then you will need to install the Microsoft Visual C++ 2010 Redistributable Package (select the appropriate one for your OS architecture below):
64-bit version:
In a previous post, I discussed debugging stored procedures with RESIGNAL, which is of great value when troubleshooting errors raised by your stored procedures, functions, triggers, and events as of MySQL/MariaDB 5.5.
However, as of MySQL 5.6 and MariaDB 10.0, there is GET DIAGNOSTICS, which can be used to get the exact error details as well.
RESIGNAL just outputs the error, as it comes from the server, for instance:
ERROR 1146 (42S02): Table 'db1.t1' doesn't exist
I was recently debugging a stored procedure and could not easily identify the underlying reason for why it was failing.
It had a standard exit handler catch-all for SQLEXCEPTION, which was:
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN SELECT ...; END;
When there was an error, it didn't really output anything useful.
As of MySQL 5.5, there is RESIGNAL:
"RESIGNAL passes on the error condition information that is available during execution of a condition handler within a compound statement inside a stored procedure or function, trigger, or event."
MariaDB replication in general works as follows: on a master server, all updates to the database are written into the binary log as binlog events, a slave server connects to the master and reads the binlog events and applies the events locally to replicate the same changes as done on the master. A server can be both a master and a slave at the same time, it is thus possible for binlog events to replicated through multiple levels of servers.