Thursday, January 30, 2014

The FOSDEM schedule in SQL

I thought it would be nice to be able to query the FOSDEM schedule for the MySQL devroom with SQL.

So I wrote a small Python script which downloads the schedule and inserts it into a MySQL database.

Some examples:
mysql> SELECT summary,dtstart,location,description FROM calendar 
    -> WHERE calname='MySQL devroom' 
    -> AND MATCH (summary, description) AGAINST ('Fabric')\G
*************************** 1. row ***************************
    summary: Sharding and Scale-out using MySQL Fabric
    dtstart: 2014-02-01 16:05:00
   location: UA2.114 (Baudoux)
description: MySQL Fabric is an open-source solution released by the MySQL Engineering team 
at Oracle. It makes management of MySQL server farms easy and available for both applications 
with small and large number of servers.
1 row in set (0.00 sec)

mysql> SELECT summary,dtstart FROM calendar 
    -> WHERE calname='MySQL devroom' ORDER BY dtstart DESC;
| summary                                                           | dtstart             |
| MaxScale, the Pluggable Router                                    | 2014-02-01 18:35:00 |
| OSM data in MySQL                                                 | 2014-02-01 18:05:00 |
| Practical sysbench                                                | 2014-02-01 17:35:00 |
| ProxySQL : High Availability and High Performance Proxy for MySQL | 2014-02-01 17:05:00 |
| Troubleshooting performance problems in MySQL                     | 2014-02-01 16:35:00 |
| Sharding and Scale-out using MySQL Fabric                         | 2014-02-01 16:05:00 |
| Spider Storage Engine                                             | 2014-02-01 15:35:00 |
| Handling failover with MySQL 5.6 and Global Transaction IDs       | 2014-02-01 15:05:00 |
| Inside MySQL 5.7 Replication Features                             | 2014-02-01 14:35:00 |
| Incompatible changes proposed in MySQL 5.7                        | 2014-02-01 14:05:00 |
| MariaDB Connect Storage Engine                                    | 2014-02-01 13:35:00 |
| Advanced Fulltext Search with Sphinx                              | 2014-02-01 13:05:00 |
| 15 Tips to improve your Galera Cluster                            | 2014-02-01 12:35:00 |
| Galera Cluster IRL                                                | 2014-02-01 12:05:00 |
| mysqlv8udfs - Writing MySQL UDFs in Javascript                    | 2014-02-01 11:35:00 |
| Getting started with MySQL Performance Schema                     | 2014-02-01 11:05:00 |
| Welcome in the MySQL & Friends Devroom 2014                       | 2014-02-01 11:00:00 |
17 rows in set (0.00 sec)

Wednesday, January 15, 2014

MySQL in Oracle Critical Patch Update Advisory January 2014

Oracle has released the Critical Patch Update (CPU) advisory for January 2014.

The affected MySQL products are:
  • Oracle MySQL Enterprise Monitor, versions 2.3, 3.0 
  • Oracle MySQL Server, versions 5.1, 5.5, 5.6
So this means that you should consider updating MySQL. For MySQL Enterprise the updates should be available on My Oracle Support and for the Community version the new versions are on the regular download locations. I guess the official repositories are already updated.

For MySQL 5.6 you should upgrade to 5.6.15
For MySQL 5.5 you should upgrade to 5.5.35
For MySQL 5.1 you should upgrade to 5.1.73

If you use the MySQL release from your distribution you should ask them to fix the CVE numbers fixed in these releases (if they didn't do that already).

The highest CVSS score for MEM is 10 and for MySQL the highest score is 6.8.

Update: for more information see this blog post by Dave Stokes.

Thursday, January 2, 2014

SSL with MySQL does not have to be complicated

I've blogged before about how complicated setting up SSL with MySQL can be. Since then many bugs have been fixed related to SSL.

But still many people are using unencrypted connections for replication and client connections.

This could be because of possible performance degradation. But then it could be used for only the admin connections.

It could also be because they already use SSH or VPN.

But for many it's because they think it's complicated. This is not necessary. I've created mysslgen which makes it easier to setup SSL. Just run and then the CA, server and client certificates and keys will be generated for you. The most difficult part it to get python 3.3 or python 2.7 to run on CentOS/RHEL/OEL 6.
If you think SSL should be part of the default MySQL installation, then click the 'Affects me' button for Bug #70734.

During the creation of mysslgen I found out MySQL fails to load private keys if they are in PKCS#8 format (Bug #71271). So, be careful if you create the private keys yourself!

With SSL enabled it should be easier to grant users the permission to use MySQL for Excel, MySQL with LibreOffice or any other desktop tool with a MySQL feature.