When tackling a new enterprise project to support a given business, you face the challenge of choosing and committing to a database platform. The choice should be the one most adequate, given the needs and requirements of the new information system and data to be hosted and managed. Typically, a number of factors should be taken into consideration like security features, storage requirements,
We are yet to see a software that runs perfectly, without any issues. MySQL is no exception there. It’s not the software’s fault - we need to be clear about that. We use MySQL in different places, on different hardware and within different environments. It’s also highly configurable. All those features make it great product but they come with a price - sometimes some settings won’t work correctly under certain conditions. It is also pretty easy to make simple human mistakes like typos in the MySQL configuration. Luckily, MySQL provides us with means to understand what is wrong through the error log. In this blog, we’ll see how to read the information in the error log.
This is the fifteenth installment in the ‘Become a MySQL DBA’ blog series. Our previous posts in the DBA series include:
- …
We are yet to see a software that runs perfectly, without any issues. MySQL is no exception there. It’s not the software’s fault - we need to be clear about that. We use MySQL in different places, on different hardware and within different environments. It’s also highly configurable. All those features make it great product but they come with a price - sometimes some settings won’t work correctly under certain conditions. It is also pretty easy to make simple human mistakes like typos in the MySQL configuration. Luckily, MySQL provides us with means to understand what is wrong through the error log. In this blog, we’ll see how to read the information in the error log.
This is the fifteenth installment in the ‘Become a MySQL DBA’ blog series. Our previous posts in the DBA series include:
- …
Mon, 2015-11-02 09:30geoff_montee_g
Losing temporary tables on a slave when
binlog_format is not set to ROW is a
well-known problem, and there is even a way to avoid it, as
described by the safe slave shutdown procedure in the MySQL documentation. However, the
documentation doesn't describe how to fix your slave if you
accidentally shut it down while it has temporary tables open. In
this blog post, I'll describe how to do that.
The Problem
Let's say that you run these statements on a master server:
-- statement 1
DROP TEMPORARY TABLE IF EXISTS tmp_table;
-- statement 2
CREATE TEMPORARY TABLE tmp_table (
id int primary key,
str varchar(10)
);
-- statement 3
INSERT INTO real_table VALUES (1, 'str1', false, …
Previous Episodes:
After seeing the basics of deploying a MySQL server in Docker, in
this article we will lay the foundations to customising a node
and eventually using more than one server, so that we can cover
replication in the next one.
Enabling GTID: the dangerous approach.To enable GTID, you need to
set five variables in the database server:
- master-info-repository=table
- relay-log-info-repository=table
- enforce-gtid-consistency
- gtid_mode=ON
- log-bin=mysql-bin
For MySQL 5.6, you also need to set log-slave-updates, but we
won't deal with such ancient versions here.
Using the method …
Some time ago, Peter Boros at Percona wrote this post: Rotating MySQL slow logs safely. It contains good info, such as that one should use the rename method for rotation (rather than copytruncate), and then connect to mysqld and issue a FLUSH LOGS (rather than send a SIGHUP signal).
So far so good. What I do not agree with is the additional construct to prevent slow queries from being written during log rotation. The author’s rationale is that if too many items get written while the rotation is in process, this can block threads. I understand this, but let’s review what actually happens.
Indeed, if one were to do lots of writes to the slow query log in a short space of time, a write could block while waiting.
Is the risk of this occurring greater during a logrotate operation? I doubt it. A FLUSH LOGS has to …
[Read more]MySQL 5.7 comes with built-in JSON support, comprising two major features:
- A native JSON data type
- A set of built-in functions to manipulate values of the JSON type
Despite being added rather recently (in MySQL 5.7.8 to be precise
- one point release number before the 5.7.9 GA version), I feel
the JSON support so far looks rather useful. Improvements are
certainly possible, but compared to for example XML support
(added in 5.1 and 5.5), the JSON feature set added to 5.7.8 is
reasonably complete, coherent and standards-compliant.
(We can of course also phrase …
Hi!
Thanks everyone who attended the hands-on lab session on MySQL
Cluster at Oracle OpenWorld today.
The following are the links for the slides, the HOL instructions, and the HOL extra instructions.
Will try to summarize the HOL session below.
Aim of the HOL was to help attendees to familiarize with MySQL
Cluster. In particular, by:
- Learning the basics of MySQL Cluster Architecture
- Learning the basics of MySQL Cluster Configuration and Administration
- Learning how to start a new Cluster for evaluation purposes and how …
Time really flies. A bit less than 4 months ago, I wrote a
post about my decision to join ScaleDB. Today,
after 4 months and a lot of excitement working with a great team
and genuinely good people, I am proud to announce
that the first version of ScaleDB is available to
the public.
ScaleDB 15.10 Ararat We decided to number this
version 15.10 and to name
it Ararat. Indeed, we intend to follow the release
cycle of other famous software projects, such as Ubuntu,
OpenStack and recently CentOS. Our logo is a peak, we are all
about scaling, as in our name and as the main objective of our
products.
To scale comes from the Latin
word scandere, i.e. …
The client library — libmysqlclient — is part of the same source code repository as the server. It comes both as a dynamic link library (.so), also called a shared library, and as a static link library (.a). During the 5.7 development cycle, we’ve made several improvements to the library, which has resulted in a bump from ABI version 18 to version 20.…