Author: Paul DuBois
Publisher: Addison Wesley, 2013
Target audience: Developers working with MySQL
Reviewed by: Kay Ewbank
Any book that gets to a 5th edition is probably worth reading, and this book on MySQL by Paul Dubois certainly fits this pattern.
Dubois is one of the documentation team for MySQL at Oracle, and is well known for his MySQL books. This one has been reissued to cover MySQL 5.5 and some of what’s new in 5.6.
The book is split into four parts. Part One is generally about MySQL use, with chapters on getting started with MySQL, the SQL dialect used by MySQL, and its data types. The final two chapters in this section look at views and stored procedures, and query optimization.
Part Two covers the programming options for MySQL. There’s a general discussion of the APIs, followed by chapters on writing programs in C, Perl, and PHP. The general discussion gives a comparative overview of each of the APIs, then discusses why you might pick one over another for particular applications. The detailed chapters then show code, starting with simple procedures or scripts, and going through to complex ideas such as writing clients that include SSL support, and using server-side prepared statements. These are big meaty chapters, well written and with good examples.
Part Three looks at MySQL Administration. There’s a chapter describing what you need to know and do to run a MySQL site successfully, and another on the MySQL Data Directory. This is the area where MySQL stores its databases, logs and status files. General MySQL administration gets a chapter where Dubois discusses storage engines, server tuning, log maintenance, and running multiple servers. This is a really good chapter that will help you make your MySQL installation work and continue working.
For many readers the chapter on security and access control will be the most useful (or at least most worrying) chapter in the book. It starts with a look at securing filesystem access to MySQL, before going on to a section titled ‘how to steal data’ that has a list of instructions showing how to make copies of tables on a MySQL server, and ends with a suggestion of ‘be really nasty, open up permissions on the anonymous user accounts for your server so anyone can connect to the server from any host’. Of course, the reason for this section is to make you realize it’s important to get security right.
This part of the book ends with a chapter on database maintenance, backups and replication, with details on preventative maintenance and what to do if disaster strikes and you need to perform crash recovery.
The final part of the book is a set of appendices, including details of the programming APIs, SQL syntax, operators and functions and data types.
This is a very good book for anyone needing to know how to use MySQL. It has good descriptions of even difficult topics, and the examples are well written and good at illustrating the point. A book you’ll want to keep on your desk when learning MySQL, and on the shelf once you know it for those occasions when you meet something incomprehensible.