In my latest series of advanced replication features, I came across several usability
issues, which I would like to recap here. For each section of
this list of requests, I make a wish list, with some general
comments.
INSTALLATIONAs the maintainer of MySQL Sandbox, a
tool that wants to facilitate the installation of …
Previous episodes:
MySQL replication in action - Part 1: GTID &
CoMySQL replication in action - Part 2 - Fan-in
topology
In the previous article, we saw the basics of
establishing replication from multiple origins to the same
destination. By extending that concept, we can deploy more
complex topologies, such as the point-to-point (P2P) all-masters
topology, a robust and fast …
In the theoretical part of this series, we have seen
the basics of monitoring. In that article, though, we have barely
mentioned the new tools available in MySQL 5.7 and MariaDB 10.
Let’s start from something that has the potential of dramatically
changing replication as we know it.
Crash-safe tables and Global transaction identifiers in MySQL 5.6
and 5.7Global transaction identifiers (GTID) is a feature that
has been in my wish list for long time, since the times I was
working with the MySQL team. By the time I left Oracle, this
feature was not even in the plans.
When MySQL 5.6 was first disclosed, the biggest improvement for
replication was the introduction of crash-safe tables (see
Status persistence in …
The latest MySQL Sandbox, version 3.0.66 is out. It has a few
new features (as always, when I find myself doing the same thing
many times, I script it) and improved support for latest releases
of MySQL. You can now install, among other versions, MySQL 5.7.8
and MariaDB 10.1.x
Some notable additions in this release are in the scripts that
are created and customized for each sandbox. There are many of them and when one more arrives, it's
easy to overlook it. So, here are the new arrivals.
./show_binlog
When I am troubleshooting replication behavior, I often need to
inspect the latest binary log. The sandbox has a shortcut that
gives me the right version of mysqlbinlog for the
deployment:
MySQL 5.7 comes with many changes. Some of them are better
explained than others.
I wanted to see how many changes I could get by comparing SHOW
VARIABLES in MySQL 5.6 and 5.7.
The most notable ones are:
- binlog_format: the default is now ROW. This variable affects the format of the binary log, whether you use it as a backup complement or for replication, the change means bigger binary logs and possibly side effects.
- …
UPDATE: Almost solved! See at the end.
A clean installation of a database server is one where everything
goes according to the expectations. It used to be easy: you only
had to do what the manual says, and, presto! you would see your
database server installed and ready to use. If something went
wrong, you got one or more error messages that informed you of
what needs to be fixed.
Sometimes, rarely, it happened that you got also a warning
message, telling you that while the installation was successful,
you could improve it by fine tuning this and that. No big
deal.
Gone are those times. A clean installation nowadays is a much
harder exercise, if not impossible. Let’s give it a try using
MySQL 5.7.7.
Attempt #1 using mysql_install_db
The first error you could do when using a new version of MySQL is
assuming that basic operations are …
When a new version of MySQL appears, the first source of information for the brave experimenter is a page in the manual named What is new in MySQL X.X, also known as MySQL in a nutshell. For MySQL 5.7, the in-a-nutshell page lists quite a lot of changes. In that page, the list of removed features is enough to send a chill down the spine of most any DBA. Some of the items in the deprecation section are removals in disguise, as they require immediate, rather than delayed, action to use the new version with existing application (SET …
[Read more]
Maintaining a project like MySQL::Sandbox is sometimes tiring, but it has its
advantages. One of them is that everything related to the server
setup comes to my attention rather earlier than if I were an
average DBA or developer.
I try to keep MySQL Sandbox up to date with every release of
MySQL and (to a lesser extent) MariaDB [1].
For this reason, I am used to trying a new release with MySQL
Sandbox, and … seeing it fail.
Of the latest changes in MySQL, probably the most disruptive was
what happened in MySQL 5.7.6, where the mysql.user table
lost the password column.
Yep. No ‘password’ column anymore. And just to make the setup
procedure harder, the syntax of SET PASSWORD …
MySQL, the original brand, the one developed by the MySQL team at Oracle, is steadily evolving. You can feel it if you try every new release that comes out of the milestone release cycle. Or even if you don’t try all of them, just testing a release once in a while gives you something to think about.
The engineers at Oracle are trying hard to improve the defaults. If you are the out-of-the-box type, and just install the new version on top of the previous one, leaving the same setup in place, you may be up for a for a few surprises. It’s the marketing, see? They tell you that just by replacing your old MySQL (5.1 or 5.5) with MySQL 5.6 you get 30% to 70% performance improvement. Which happens to be true, not only because the server is better, but also because they have changed the defaults. However, this change in defaults may come with some serious consequences for the ones who …
[Read more]I was pleased to see Morgan’s announcement about a fix to an old problem of mine. In March 2012 I complained about MySQL verbosity during installation.
In MySQL 5.7.3, this behavior was changed. While the default is still as loud as it can, you can now add an option (log_error_verbosity) to send only errors to STDERR, which allows you to hide the output of mysql_install_db, and still get the errors, if they occur.
Well done!
However, the same obnoxious verbosity is also in MariaDB 10.0.x. Since I discussed this specific bug with a few MariaDB developers early in 2012, I was disappointed to see this same output when running mysql_install_db with MariaDB. Here’s the same appeal: MariaDB …
[Read more]