Thursday, May 28, 2009

What is MySQL?

It's been an incredible journey coming from the Oracle world (which I love) and having the privilege of joining MySQL and watching MySQL be on the verge of going public and then being part of the Sun acquisition and now watching the Oracle acquisition move forward. To say its been one of the richest experiences in my professional career would be an understatement.

Which makes me think, what is MySQL? If you asked 20 different people you would get 20 different answers. Some of the most common I believe would be:
  • A small open source company that wanted to disrupt the IT industry and did!
  • A company with incredible leadership that had a vision that every single employee was committed and dedicated to that vision.
  • A free open source database that helped redefine the database industry.
  • A very successful database product that has incredible scale out capability that leverages open source and the LAMP stack.
  • A product that opened up more options for organizations during a time of an economic down turn.
Today and twenty years from now, when I think of MySQL I do not just think of a database software product that has disrupted the IT industry. I think of:
  • A culture based on sharing, teamwork, commitment to a vision and love of open source.
  • A community that is entirely team based with an incredible sense of loyalty to each other and the goals defined by the leadership.
  • A leadership team that believed in speaking to the employees and not at them.
  • An environment built on empowering individuals to make the sum greater than the parts.
  • The incredible dedication and selflessness of the employees.
  • An environment that cultivated incredible talent and was able to define a vision that people believe in.
The spirit, dedication, belief in the vision and camaraderie is as strong in the MySQL community as it was over a year and a half when I joined MySQL. The culture, Qua, karma, kismit or what ever you want to call it, is I believe growing stronger.

I'm a big reader of business books and I believe we will see some successful business books on the MySQL story. Yet if these books talk about the MySQL success story or the MySQL product they will be capturing a small part of what MySQL is. To me, the MySQL story has to include the vision, the incredible culture and the unique group of people that have come together to disrupt the IT industry.

I write this blog entry because I always find it interesting the people that like to tear down our heroes, spread Fear Uncertainty and Doubt (FUD) and scare people with worse case scenarios. I on the other hand believe we should believe its okay to have heroes, believe that good things can happen and never underestimate what individuals that believe in a vision can accomplish.

The Big Misperception by new MySQL Customers

When meeting with MySQL customers I find they usually have some very strong misperceptions of using the free version (Community Version) of MySQL and that they have no need to purchase the Enterprise Version of MySQL.

First of all, most new MySQL users do not install, configure, tune or manage the MySQL database server properly. MySQL is the easiest database server in the world to install, but if used in a production environment it needs to be set up properly. When an organization purchases an Oracle license for six or seven figures they understand they had better get the appropriate expertise to manage their Oracle database server. When downloading MySQL for free, they think anybody can manage the MySQL server because it is free and anybody can install it. There is a big difference between installing and playing with a MySQL database server and running it in a production environment.

MySQL is extremely popular with web applications. Often traditional OLTP and DW DBAs are not familiar with architectures surrounding the MySQL database server or how web applications need to be configured differently than a traditional OLTP database or data warehouse application.

When using the MySQL server in a production environment it needs to be configured properly for it to run right. Problems new customers can have when using MySQL:
  • Database server running slow, hanging and possibly crashing because it was not configured properly for the production server environment it will be running in.
  • Batch operations taking 40 - 60 hours when they should be taking 20 - 60 minutes because the database server is not tuned properly.
  • High cost of using MySQL because customers do not understand all the features of MySQL.
  • Not using MySQL for the right type of application or using the wrong architecture for their MySQL solution.
New customers talk about how they do not need to purchase the Enterprise version of MySQL and how support is not necessary. MySQL support is arguably the best support in the IT industry and MySQL support people are well recognized experts in MySQL. MySQL support people are not call takers, they are experienced experts in MySQL. So often one support can justify the cost of purchasing a MySQL Enterprise License.

When customers ask if they should be purchasing the MySQL Enterprise edition, I ask them these following questions.
  1. If your database server crashes and it costs your company money or impacts your business you should be looking at support. Production database servers should be running in a supported environment.
  2. Do you have the expertise to configure and tune your database server?
  3. Do you understand the ramifications of how you are configuring MySQL, the architecture it will run under and what features you are using? If not, you could be setting yourself up for problems down the road?
I guess the question is, can your business afford to run the free version of MySQL or should you be purchasing the supported Enterprise release of MySQL.? It's so funny, because no one would every run an important Oracle database server without some type of support. So I always wonder why a customer would run the community version of MySQL and not the supported version of MySQL for critical applications?

Thursday, May 21, 2009

Brian Miezejewski speaking at the Dallas MySQL Users Group

Brian Miezejewski at Dallas MySQL Users Group

Brian Miezejewski will be speaking at the Dallas MySQL Users Group meeting June 1st in Dallas. Brian is a top respected MySQL consultant. If Brian is talking about performance tuning MySQL, then any MySQL DBAs in the area should be attending to listen to what he has to say.

I'm planning on attending the Dallas MySQL group meeting and listening to Brian.

Dallas MySQL Users Group Meeting June 1st, 2009

Meeting: June 1st
7:00 PM
Suite 700 16000
Dallas Tollway

Setting the MySQL Temporary Directory

One of the common mistakes made by new MySQL DBAs is forgetting to consider the MySQL temporary directory. If an internal heap table exceeds the size of the MySQL parameter TMP_TABLE_SIZE, MySQL will create a temporary MyISAM file on the disk to buffer the data.

MySQL will use the TMPDIR environmental variable to set the default location for storing temporary files. If this environmental variable is not set, the OS default will be used (i.e. /tmp, /usr/tmp or /var/tmp, etc.).

The mysqld --tmpdir can be set to multiple paths used in a rotating method. Paths are separated by colon characters (Unix) or semi-colons (Windows).

Remember that temporary files are created as hidden files. This makes sure that temporary files are deleted if mysqld is terminated.

Make sure to NOT set the TMPDIR path to the MySQL data directory filesystem.

Removing a MySQL Service FROM Windows

After shutting down and removing a MySQL database server from a Windows platform it is important to remember to remove the Windows service associated with it. There are two different ways to remove a MySQL server.
  • MySQL way: c:> mysqld --remove servicename
  • Windows way: c:> sc delete servicename

Saturday, May 16, 2009

Oracle SQL Developer with MySQL: Looks great so far.

So far I am pretty excited about using Oracle SQL Developer with MySQL. I spent about ten minutes installing Oracle SQL Developer, the MySQL J Connector and setting up SQL Developer to connect to MySQL.

I've only been using it a few minutes and so far its been great to work with. Oracle SQL Developer has matured into a nice interface so its been really fun to work with. In terms of ease of use and being a nice interface to work with its been awesome! Now I need to start testing all the features and doing some migrations between Oracle and MySQL.

Installing and Configuring Oracle SQL Developer with MySQL

Installing Oracle SQL Developer was way too easy!

Installing Oracle SQL Developer is pretty straight forward to install. You will need to install the Oracle SQL Developer software and the MySQL J Connector (JDBC driver). It then requires about two minutes to point and click through the setup of the MySQL connection using the JDBC driver in SQL Developer. Oracle SQL Developer has the following downloads:
  • Oracle SQL Developer for Windows.
  • Oracle SQL Developer for Mac OS X platforms.
  • Oracle SQL Developer RPM for Linux.
  • Oracle SQL Developer for other platforms.

Install MySQL J Connector:
You will first need to download the MySQL J Connector (JDBC Driver) at the MySQL download site..

Install Oracle SQL Developer
Then download Oracle SQL Developer software from Oracle OTN. . You need to go to the Oracle Technology Network (OTN) and set up a user account (it is free). I installed it on Mac OS. I just unzipped the zip file in the Applications directory and started Oracle SQL Developer. Here is the main window in SQL Developer.

After starting Oracle SQL Developer, go to the Tools Menu and choose Preferences. Then open up the Database Hierarchy and choose Third Party JDBC Drivers.

Then click on the Add Entry button to add the JAR file containing the JDBC Connector. I put the J Connector file in /Users/George/Library/Application Support/SQL Developer directory. In the File Browswer I then choose: Library | Application Support | SQL Developer, then selected the mysql-connector-java-5.1.7-bin.jar file. You will then see the jar file added.

Then right click on the Connections Icon in the main window. It will then bring up a tab window showing Oracle and MySQL. Choose the MySQL tab. Enter a connection name, username and password. Then test the connection. You will then see your new MySQL connection below the Connections Icon in the main window. Double click on your MySQL connection and start writing queries. Then hit the green arrow button to execute the SQL statement.

Oracle has some great tutorials on how to get started with SQL Developer.

Have fun!

Wednesday, May 13, 2009

The Importance of Peripheral DBA Skills

At I've written a blog on the importance of peripheral DBA skills. In the MySQL world, the following peripheral skills are very helpful for managing MySQL environments:
  • LAMP skills - Linux, Apache, PHP/Perl/Python.
  • Application Servers - knowledge of Apache, JBoss, LightHTTP, connection pooling, etc.
  • Monitoring skills - Enterprise Monitor, Nagios, Cacti, etc.
  • Ability to support developers - PHP, Java, .NET.
  • Networking skills.

Saturday, May 9, 2009

New Things to Look at: OEM Grid Control with MySQL Plug-in

My customers tell me Oracle is winning the war with the Oracle Enterprise Manager (OEM) as the tool of choice for managing the Oracle Infrastructure across multiple tiers. With Oracle 11g, Oracle will be adding more RAC integration/functionality into the middle-tier with OEM. Part of the power of OEM is that it manages Oracle Database Servers, Application Servers, Services, Applications and the environment surrounding the Oracle Infrastructure.

OEM provides a number of plug-ins so I need to look into how having OEM monitor and manage MySQL with the OEM MySQL Plug-in. OEM also provides plug-ins for monitoring other database servers as well as other application servers. The capability to manage multiple tiers of heterogenous software is some very serious functionality. So seeing how well it manages MySQL is going to be fun.

New Things to Look at: InnoDB Plug-in

Just about every week I am asked by customers what storage engine they should be using. As well as, what storage engine should we be paying attention to in the future (i.e. Falcon, Maria, InnoDB, etc.).

It's finally time to start looking very seriously at the InnoDB plug-in. It's in the final beta releases while Maria and Falcon are still in alpha stage. The really nice thing about the InnoDB storage engine is it works very similar to how the Oracle works with a database buffer cache, redo log cache and undo data. It's always very easy for me to explain how InnoDB works to Oracle DBAs. There is also an InnoDB Hot Backup utility that I always hear positive things from customers using it.

I will be following with my thoughts and impressions of the Oracle InnoDB Plug-in.

Friday, May 8, 2009

New Things to Look: Oracle SQL Developer with MySQL

GUI Interfaces to use with MySQL

When meeting with MySQL customers I always get asked about GUI interfaces.
  1. I am always asked, what GUI to you recommend with MySQL? Two of the most popular are SQLYog and Navicat for MySQL customers.
Looking at Oracle SQL Developer

I think it is time to see how well SQL Developer works with MySQL. Oracle's SQL Developer has matured into a very nice tool and its free. I also want to see how well it migrates objects between MySQL and Oracle databases. SQL Developer has a lot of very cool functionality and all the interfaces are well designed. SQL Developer is also a Java application so you have the same look and feel on Linux, Mac OS and Windows.

Thursday, May 7, 2009

Collaborate 09 - Wrapup

The Oracle users Collaborate 09 was an absolutely fantastic technical conference. The presentations were exceptional in their quality. This conference was invaluable for networking and the discussions with Oracle user industry leaders from around the world. The discussions, insights and perceptions that were discussed every night were in my opinion even more valuable that the technical presentations. The presentations, podcasts and recordings will be available for two weeks following the conference.

It's now on to Java One and Oracle Open World.

Tuesday, May 5, 2009

Collaborate 09 - George Trujillo

Most of my blog entries this week are going to be at since I'm at the Collaborate 09 Users conference.

Friday, May 1, 2009

Oracle Collaborate 09 - Oracle Users Conference

The Oracle User Community's big yearly event, Collaborate 09 in Orlando begins this week. This is going to be a hot conference bringing together the Oracle user communities top technology experts and industry leaders together. During this time of dynamic change it is an invaluable experience to bring get Oracle's top industry leaders for a week of meetings, presentations, discussions and networking events. Include top members from the Oracle product groups and Oracle's largest third party vendors and its a formula for invaluable networking.

My conference starts out this weekend with:


  • IOUG Board of Directors meeting
  • Conference committee meeting
  • IOUG, Quest and OAUG board of directors reception
  • Mindy's big birthday bash
  • IOUG University events - I'm planning on attending Michael Ault's Tuning university.
  • SELECT Magazine Expert Panel
  • IOUG Volunteer Reception
  • IOUG SIG Reception

Second Life Presentation on Sun Solaris Campus

This virtual world presentation will be delivered at the Sun Microsystems Islands on the Solaris Campus. Up above, I'm chilling at the Solaris Campus on one of the Sun virtual islands.

Second Life Presentation on Sun Solaris Campus

The MySQL open source database continues to increase in popularity with usage estimated at 12 million database servers worldwide. This presentation will help Unix/Linux and storage management administrators understand the reasons for the growing popularity of MySQL. Topics will include:

  • Positioning MySQL in the database market.
  • How is MySQL different than
  • Understanding the MySQL architecture.
  • Strengths and weaknesses of MySQL.
  • Key features of MySQL.
  • Understanding the storage engine story in MySQL.
  • MySQL strategic directions.

The focus of this presentation is on helping attendees understand the philosophy, features, benefits and popularity of MySQL.

Demystifying MySQL for Solaris Administrators: Sun Solaris Campus Event

Second Life Presentation on Sun Solaris Campus May 5, 2009 9:00 am PDT

This virtual world presentation will be delivered at the Sun Microsystems Islands on the Solaris Campus. Up above, I'm visiting the Solaris Certification Center.

Demystifying MySQL for Solaris Administrators

George Trujillo (Ty Valdez) and Steve Jones will be presenting a Demystifying MySQL for Solaris Administrators the week of May 4, 2009 in Second Life. This presentation is a very detailed technical presentation designed for experienced Unix/Linux administrators to understand installation, configuration and management of MySQL on Solaris platforms. MySQL best practices along with Solaris features that can leverage database management such as ZFS will be included. Topics will include:

  • Strategies for laying out database servers on Solaris (Unix/Linux) platforms.
  • Understanding the MySQL architecture.
  • Installing MySQL using MOCA (GOCA) for best practices.
  • Starting and stopping the MySQL database server.
  • Top ten things to configure after creating a MySQL database server.
  • Using MySQL with ZFS.
  • Managing MySQL on a Solaris platform.