This year the Zero to DBA Hero track at the Southeas
Llinuxfest expands to a second day. The event is
free to attend but it helps if you pre register. Here is
the agenda of that you will see in Charlotte June 8th, 9th, and
10th.
MySQL Talks at SELF – Zero to
DBA Hero Track Linode Ballroom
Friday
9am 20 years of MySQL, 20 years of
PHP, and 10 Years of SELF -- What the heck has been going on?
Dave Stokes
10:15 Introducing the MySQL Document Store
Charles Bell, PhD
11:30 Performance Analysis and Troubleshooting Methodologies
for Databases Peter Zaitsev
1:30 MySQL Without the SQL -- Oh My! Dave Stokes
4:00 Introducing MySQL InnoDB Cluster Charles Bell,
PhD
Saturday
9am …
When maintainng any piece of software, we usually deal with two kind of actions:
- bug fixing,
- new features.
bugs and features
A bug happens when there is an error in the software, which does not behave according to the documentation or the specifications. In short, it's a breech of contract between the software maintainer and the users. The promise, i.e. the software API that was published at every major version, is broken, and the software must be reconciled with the expectations and fixed, so that it behaves again as the documentation says. When we fix a bug in this way, we increment the revision number of the software version …
[Read more]
Pretend you have a JSON array of data that looks roughly like the
following.
mysql> insert into x(y) values('["a","b","c","d"]');
Query OK, 1 row affected (0.10 sec)
You could get all the values from that array using
$[*]
mysql> select y->"$[*]" from x;
+----------------------+
| y->"$[*]" |
+----------------------+
| ["a", "b", "c", "d"] |
+----------------------+
1 row in set (0.00 sec)
Or the individual members of the array with an index that starts
with zero.
mysql> select y->"$[0]" from x;
+-----------+
| y->"$[0]" |
+-----------+
| "a" |
+-----------+
1 row in set (0.00 sec)
But what about the times you want the last item in the array and
really do not want to loop through all the items? How about using …
MySQL 8.0 GA is right around the corner. I
don't have precise information about its release, as I don't work
at Oracle. If I did, I would probably know, but I couldn't tell
when the release is scheduled to appear because of company
policies. I can, however, speculate and infer, based of my
experience with previous releases. My personal assessment is that
the release will appear before 9:00am PT on April 24, 2018. The "before"
can be anything from a few minutes to one week in advance.
Then, again, it may not happen at all if someone finds an
atrocious bug that needs to be fixed asap.
Either way, users are keen on testing the new release in its current state of release candidate. Here I show a few methods that allow you to have a taste of the new …
[Read more]dbdeployer went into release candidate status a few weeks ago. Since then, I added no new features, but a lot of tests. The test suite now runs 3,000+ tests on MacOS and a bit more on Linux, for a grand total of 6,000+ tests that need to run at least twice: once with concurrency enabled and once without. I know that testing can't prove the absence of bugs, but I am satisfied with the results, since all this grinding has allowed me to find several bugs and fix them.
In this framework, I felt that dbdeployer could exit candidate status and get to version 1.0. This happened on March 26th. An immediate side effect of this change is that from this point on, dbdeployer must adhere to the semantic versioning principles:
A version number is made of Major, Minor, and Revision. When changes are applied, the following happens:
- …
The latest release of dbdeployer is possibly the last one with a leading 0. If no serious bugs are found in the next two weeks, the next release will bear a glorious 1.0.
Latest news
The decision to get out of the stream of pre-releases that were published until now comes because I have implemented all the features that I wanted to add: mainly, all the ones that I wished to add to MySQL-Sandbox but it would have been …
[Read more]
Version 0.3.0 of dbdeployer has gained the ability of deploying
multiple sandboxes concurrently. Whenever we deploy a group of
sandboxes (replication, multiple) we can use
the --concurrent
flag, telling dbdeployer that it
should run operations concurrently.
What happens when a single sandbox gets deployed? There are six sets of operations:
- Create the sandbox directory and write down its scripts;
- Run the initialisation script;
- Start the database server;
- Run the pre-grants SQL commands (if any;)
- Load the grants; …
In this blog post, we’ll look at how to turn on binlog encryption in Percona Server for MySQL.
Why do I need this?
As you probably know, Percona Server for MySQL’s binlog contains sensitive information. Replication uses the binlog to copy events between servers. They contain all the information from one server so that it can be applied on another. In other words, if somebody has access to a binlog, it means they have access to all the data in the server. Moreover, said person (or, “Hacker”) could create a clone copy of our server by just making a replica of it. In the end, they have access to our binlog. This shows how important protecting a binlog really is – leakage of binlogs not only make a particular table/tablespace or a group of tables accessible to a hacker, but literally the whole server …
[Read more]As of version 0.2.1, dbdeployer allows users to customize composite sandboxes more than ever. This is done by manipulating the default settings, which are used to deploy the sandbox templates.
In order to appreciate the customization capabilities, let's start with a vanilla deployment, and then we have a look at the possible changes.
$ dbdeployer deploy replication 8.0.4
Installing and starting master
Database installed in $HOME/sandboxes/rsandbox_8_0_4/master
. sandbox server started
Installing and starting slave 1
Database installed in …
[Read more]
One of Oracle's tenets is the focus on security. For this reason, when it took over the stewardship of MySQL, it started addressing the most common issues. It was not quick acting, but we have seen real progress:
- MySQL 5.7 has removed the anonymous accounts, which was the greatest threat to security. Because of those accounts, and the default privileges granted to them, users without any privileges could access the "test" database and do serious damage. Additionally, because of the way the privilege engine evaluates accounts, anonymous users could hijack legitimate users, by preventing them to work …