Category Archives: Databases

Upgrading from MySQL 5.1 to MariaDB 5.5

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Well, mind , who revealed something very interesting and riveting.

From there, Giuseppe gave a short talk on what it’s like to work at MySQL, and then we moved on to the topic of the user group meeting, “What is MySQL Cluster Good For?”

The slides for the talk are downloadable in PDF Format 61kB and Flash (SWF) format, 31kB

The video can be played at http://technocation.org/node/572/play and downloaded (404 Mb) at http://technocation.org/node/572/download.

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Well, mind , who revealed something very interesting and riveting.

From there, Giuseppe gave a short talk on what it’s like to work at MySQL, and then we moved on to the topic of the user group meeting, “What is MySQL Cluster Good For?”

The slides for the talk are downloadable in PDF Format 61kB and Flash (SWF) format, 31kB

The video can be played at http://technocation.org/node/572/play and downloaded (404 Mb) at http://technocation.org/node/572/download.

The last keynote of Tuesday evening at OSCon 2008 was entitled “Temporarily Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…..Made Easy!”

Damian Conway is a speaker that should not be missed. He spends his time hacking perl to do fascinating and obscure feats of technology such as time travel. This video is just over an hour of rolling laughter that will entertain you into realizing what a genius Damian Conway is.

Now, side effects so if folks could pass the links to the video along to other communities, viagra buy that would be great.

(This video is at 1.0 Mb/sec. Watch the video online at http://technocation.org/node/571/play or download it at http://technocation.org/node/571/download. Please do not download the file if you are on the conference network, these links are not time sensitive.)

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Well, mind , who revealed something very interesting and riveting.

From there, Giuseppe gave a short talk on what it’s like to work at MySQL, and then we moved on to the topic of the user group meeting, “What is MySQL Cluster Good For?”

The slides for the talk are downloadable in PDF Format 61kB and Flash (SWF) format, 31kB

The video can be played at http://technocation.org/node/572/play and downloaded (404 Mb) at http://technocation.org/node/572/download.

The last keynote of Tuesday evening at OSCon 2008 was entitled “Temporarily Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…..Made Easy!”

Damian Conway is a speaker that should not be missed. He spends his time hacking perl to do fascinating and obscure feats of technology such as time travel. This video is just over an hour of rolling laughter that will entertain you into realizing what a genius Damian Conway is.

Now, side effects so if folks could pass the links to the video along to other communities, viagra buy that would be great.

(This video is at 1.0 Mb/sec. Watch the video online at http://technocation.org/node/571/play or download it at http://technocation.org/node/571/download. Please do not download the file if you are on the conference network, these links are not time sensitive.)

Liveblogging from OSCon 2008: Going Open Source, treatment The 20 Most Important Things to Do – by Martin Aschoff of AGNITAS AS.

Firstly I have to extend a heartfelt “thank you” to Sun Microsystems and Monty Widenius, as I would not have been able to attend OSCon without their assistance.

AGNITAS AS makes e-marketing software, 25 employees, no venture capital, from Munich, Germany. The municipality of Munich runs entirely on Linux desktops and on infrastructures with open source software.

This session is about the nuts and bolts of an open source company. Aschoff kept a journal of the key learnings of the company when it went open source, and has become a board member of the Open Source Business Association in Europe.

Before deciding on going open source:
(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

(more…)

I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

(more…)

I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

In two words: online operations. In a paragraph: Forget partitioning, dosage are the online operations:

  • online ALTER TABLE for column rename, human enhancement column default value change, purchase and adding values to the end of an ENUM/SET
  • Online, table-based logging. No more need to restart your server to enable or change the general or slow query logs. You can have the standard file-based output or choose a table format…which you can query.
  • (more…)

    Yesterday I had a good conversation with

    My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

    That’s not the case at all.
    (more…)

    This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

    Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

    Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

    The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

    Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

    Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

    But wait! There are some more updates!

    (more…)

    As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

    The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

    (more…)

    I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

    My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

    In two words: online operations. In a paragraph: Forget partitioning, dosage are the online operations:

    • online ALTER TABLE for column rename, human enhancement column default value change, purchase and adding values to the end of an ENUM/SET
    • Online, table-based logging. No more need to restart your server to enable or change the general or slow query logs. You can have the standard file-based output or choose a table format…which you can query.
    • (more…)

      My parents instilled upon me many values that I keep with me today. My twin brother and I are the youngest of four children, nurse screeching “Mine! Mine!”

      My father’s response to this was to look at us and say “These toys are mine; I bought those toys with money I worked for. What’s yours is what you make with your bodies.” While the sentiment is arguably harsh, weight loss crude and bordering on vulgar, I cannot argue that he had a certain point.

      If you do not truly own something, you will be left squabbling like a child when your perceived ownership is threatened. When you assumed you owned something and the truth comes to light, you will be massively insecure and have a sense of injustice.

      A few points from OSCon are haunting me and getting me to think about what FLOSS means to me, and what I want from it.

      — Open source is important even if you never read one line of source code or make one modification. The fact that anyone can read and write the source code is critical even if nobody besides the original engineer(s) ever does.

      (more…)

      Yesterday I had a good conversation with

      My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

      That’s not the case at all.
      (more…)

      This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

      Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

      Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

      The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

      Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

      Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

      But wait! There are some more updates!

      (more…)

      As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

      The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

      (more…)

      I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

      My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

      In two words: online operations. In a paragraph: Forget partitioning, dosage are the online operations:

      • online ALTER TABLE for column rename, human enhancement column default value change, purchase and adding values to the end of an ENUM/SET
      • Online, table-based logging. No more need to restart your server to enable or change the general or slow query logs. You can have the standard file-based output or choose a table format…which you can query.
      • (more…)

        My parents instilled upon me many values that I keep with me today. My twin brother and I are the youngest of four children, nurse screeching “Mine! Mine!”

        My father’s response to this was to look at us and say “These toys are mine; I bought those toys with money I worked for. What’s yours is what you make with your bodies.” While the sentiment is arguably harsh, weight loss crude and bordering on vulgar, I cannot argue that he had a certain point.

        If you do not truly own something, you will be left squabbling like a child when your perceived ownership is threatened. When you assumed you owned something and the truth comes to light, you will be massively insecure and have a sense of injustice.

        A few points from OSCon are haunting me and getting me to think about what FLOSS means to me, and what I want from it.

        — Open source is important even if you never read one line of source code or make one modification. The fact that anyone can read and write the source code is critical even if nobody besides the original engineer(s) ever does.

        (more…)

        ValleyWag reports that MySQL’s Monty Widenius is no longer “MySQL’s”. Some folks have known that Monty has not been happy in his current position; this leads me to believe the rumor is true (though of course an official announcement is the only confirmation).

        So what does this mean for MySQL? Well, patient honestly, viagra 40mg if a product falls apart because one out of 300 employees leaves, it was probably doomed anyway. There are plenty of capable employees left, and being owned by Sun means that there are many more resources they can tap as well.

        What will the official company announcement be? My prediction is (more…)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        Though the event is still happening in Charlottesville, click , price and a captcha has been put in place that is activated on any page change that adds an external URL.

        Whether you are into MySQL, drugstore PostgreSQL, Drizzle, or some other open source SQL database, go forth and register for OpenSQL Camp, without having to login! (Disclosure: if you do not create a login, your IP is tracked.)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        Though the event is still happening in Charlottesville, click , price and a captcha has been put in place that is activated on any page change that adds an external URL.

        Whether you are into MySQL, drugstore PostgreSQL, Drizzle, or some other open source SQL database, go forth and register for OpenSQL Camp, without having to login! (Disclosure: if you do not create a login, your IP is tracked.)

        As I putter around the MySQL INFORMATION_SCHEMA, order I am finding lots of undocumented behavior for fields that should be straightforward. For example, read the VIEWS table holds information about views, and the VIEW_DEFINITION field contains the view definition, right?

        Well, when I was looking at the VIEW_DEFINITION today, I noticed an odd thing. Even though I had permissions to see the view definition (as proven by the SHOW CREATE VIEW command), the INFORMATION_SCHEMA.VIEWS table sometimes came up blank for the VIEW_DEFINITION. I had to figure out why, and now that I know, I’m not sure if it’s a bug or a feature…..can you figure it out?

        mysql> USE INFORMATION_SCHEMA;
        Database changed
        mysql> SELECT TABLE_NAME,VIEW_DEFINITION FROM VIEWS WHERE TABLE_SCHEMA='sakila';
        
        +----------------------------+-----------------+
        | TABLE_NAME                 | VIEW_DEFINITION |
        +----------------------------+-----------------+
        | actor_info                 |                 |
        | customer_list              |                 |
        | film_list                  |                 |
        | nicer_but_slower_film_list |                 |
        | sales_by_film_category     |                 |
        | sales_by_store             |                 |
        | staff_list                 |                 |
        +----------------------------+-----------------+
        7 rows in set (0.16 sec)
        
        mysql> SHOW CREATE VIEW sakila.actor_infoG
        *************************** 1. row ***************************
        View: actor_info
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY INVOKER VIEW `sakila`.`actor_info` AS select `a`.`actor_id` AS `actor_i
        d`,`a`.`first_name` AS `first_name`,`a`.`last_name` AS `last_name`,group_concat(
        distinct concat(`c`.`name`,': ',(select group_concat(`f`.`title` order by `f`.`t
        itle` ASC separator ', ') AS `GROUP_CONCAT(f.title ORDER BY f.title SEPARATOR ',
        ')` from ((`sakila`.`film` `f` join `sakila`.`film_category` `fc` on((`f`.`film
        _id` = `fc`.`film_id`))) join `sakila`.`film_actor` `fa` on((`f`.`film_id` = `fa
        `.`film_id`))) where ((`fc`.`category_id` = `c`.`category_id`) and (`fa`.`actor_
        id` = `a`.`actor_id`)))) order by `c`.`name` ASC separator '; ') AS `film_info`
        from (((`sakila`.`actor` `a` left join `sakila`.`film_actor` `fa` on((`a`.`actor
        _id` = `fa`.`actor_id`))) left join `sakila`.`film_category` `fc` on((`fa`.`film
        _id` = `fc`.`film_id`))) left join `sakila`.`category` `c` on((`fc`.`category_id
        ` = `c`.`category_id`))) group by `a`.`actor_id`,`a`.`first_name`,`a`.`last_name
        `
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.02 sec)
        
        mysql> SHOW CREATE VIEW sakila.customer_listG
        *************************** 1. row ***************************
        View: customer_list
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY DEFINER VIEW `sakila`.`customer_list` AS select `cu`.`customer_id` AS `
        ID`,concat(`cu`.`first_name`,_utf8' ',`cu`.`last_name`) AS `name`,`a`.`address`
        AS `address`,`a`.`postal_code` AS `zip code`,`a`.`phone` AS `phone`,`sakila`.`ci
        ty`.`city` AS `city`,`sakila`.`country`.`country` AS `country`,if(`cu`.`active`,
        _utf8'active',_utf8'') AS `notes`,`cu`.`store_id` AS `SID` from (((`sakila`.`cus
        tomer` `cu` join `sakila`.`address` `a` on((`cu`.`address_id` = `a`.`address_id`
        ))) join `sakila`.`city` on((`a`.`city_id` = `sakila`.`city`.`city_id`))) join `
        sakila`.`country` on((`sakila`.`city`.`country_id` = `sakila`.`country`.`country
        _id`)))
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.00 sec)
        
        mysql>
        

        (some people read the dictionary, I read the data dictionary!)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        Though the event is still happening in Charlottesville, click , price and a captcha has been put in place that is activated on any page change that adds an external URL.

        Whether you are into MySQL, drugstore PostgreSQL, Drizzle, or some other open source SQL database, go forth and register for OpenSQL Camp, without having to login! (Disclosure: if you do not create a login, your IP is tracked.)

        As I putter around the MySQL INFORMATION_SCHEMA, order I am finding lots of undocumented behavior for fields that should be straightforward. For example, read the VIEWS table holds information about views, and the VIEW_DEFINITION field contains the view definition, right?

        Well, when I was looking at the VIEW_DEFINITION today, I noticed an odd thing. Even though I had permissions to see the view definition (as proven by the SHOW CREATE VIEW command), the INFORMATION_SCHEMA.VIEWS table sometimes came up blank for the VIEW_DEFINITION. I had to figure out why, and now that I know, I’m not sure if it’s a bug or a feature…..can you figure it out?

        mysql> USE INFORMATION_SCHEMA;
        Database changed
        mysql> SELECT TABLE_NAME,VIEW_DEFINITION FROM VIEWS WHERE TABLE_SCHEMA='sakila';
        
        +----------------------------+-----------------+
        | TABLE_NAME                 | VIEW_DEFINITION |
        +----------------------------+-----------------+
        | actor_info                 |                 |
        | customer_list              |                 |
        | film_list                  |                 |
        | nicer_but_slower_film_list |                 |
        | sales_by_film_category     |                 |
        | sales_by_store             |                 |
        | staff_list                 |                 |
        +----------------------------+-----------------+
        7 rows in set (0.16 sec)
        
        mysql> SHOW CREATE VIEW sakila.actor_infoG
        *************************** 1. row ***************************
        View: actor_info
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY INVOKER VIEW `sakila`.`actor_info` AS select `a`.`actor_id` AS `actor_i
        d`,`a`.`first_name` AS `first_name`,`a`.`last_name` AS `last_name`,group_concat(
        distinct concat(`c`.`name`,': ',(select group_concat(`f`.`title` order by `f`.`t
        itle` ASC separator ', ') AS `GROUP_CONCAT(f.title ORDER BY f.title SEPARATOR ',
        ')` from ((`sakila`.`film` `f` join `sakila`.`film_category` `fc` on((`f`.`film
        _id` = `fc`.`film_id`))) join `sakila`.`film_actor` `fa` on((`f`.`film_id` = `fa
        `.`film_id`))) where ((`fc`.`category_id` = `c`.`category_id`) and (`fa`.`actor_
        id` = `a`.`actor_id`)))) order by `c`.`name` ASC separator '; ') AS `film_info`
        from (((`sakila`.`actor` `a` left join `sakila`.`film_actor` `fa` on((`a`.`actor
        _id` = `fa`.`actor_id`))) left join `sakila`.`film_category` `fc` on((`fa`.`film
        _id` = `fc`.`film_id`))) left join `sakila`.`category` `c` on((`fc`.`category_id
        ` = `c`.`category_id`))) group by `a`.`actor_id`,`a`.`first_name`,`a`.`last_name
        `
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.02 sec)
        
        mysql> SHOW CREATE VIEW sakila.customer_listG
        *************************** 1. row ***************************
        View: customer_list
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY DEFINER VIEW `sakila`.`customer_list` AS select `cu`.`customer_id` AS `
        ID`,concat(`cu`.`first_name`,_utf8' ',`cu`.`last_name`) AS `name`,`a`.`address`
        AS `address`,`a`.`postal_code` AS `zip code`,`a`.`phone` AS `phone`,`sakila`.`ci
        ty`.`city` AS `city`,`sakila`.`country`.`country` AS `country`,if(`cu`.`active`,
        _utf8'active',_utf8'') AS `notes`,`cu`.`store_id` AS `SID` from (((`sakila`.`cus
        tomer` `cu` join `sakila`.`address` `a` on((`cu`.`address_id` = `a`.`address_id`
        ))) join `sakila`.`city` on((`a`.`city_id` = `sakila`.`city`.`city_id`))) join `
        sakila`.`country` on((`sakila`.`city`.`country_id` = `sakila`.`country`.`country
        _id`)))
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.00 sec)
        
        mysql>
        

        (some people read the dictionary, I read the data dictionary!)

        The unsung heroes of InnoDB are the logfiles. They are what makes InnoDB automatic crash recovery possible.

        Database administrators of other DBMS may be familiar with the concept of a “redo” log. When data is changed, life affected data pages are changed in the innodb_buffer_pool. Then, ailment the change is written to the redo log, stomatology which in MySQL is the InnoDB logfile (ib_logfile0 and ib_logfile1). The pages are marked as “dirty”, and eventually get flushed and written to disk.

        If MySQL crashes, there may be data that is changed that has not been written to disk. Those data pages were marked as “dirty” in the innodb_buffer_pool, but after a MySQL crash the innodb_buffer_pool no longer exists. However, they were written to the redo log. On crash recovery, MySQL can read the redo log (InnoDB log files) and apply any changes that were not written to disk.

        That is the basic functionality of the InnoDB log files. Given this, let’s look at some of the different parameters and their ramifications.

        innodb_log_files_in_group is set with a default of 2. The logfiles are written in a circular manner — ib_logfile0 is written first, and when it has reached its maximum size, then ib_logfile1 will be written to.

        innodb_log_file_size is the size of each log file in the log group. The total, combined size of all the log files has to be less than 4 Gb (according to the MySQL manual). Because the logfiles contain changes in the buffer pool that have not been written to disk, the total, combined size of all the log files should not be more than the innodb_buffer_pool_size.

        If all the log files in the group are full of changes that have not been written to disk, MySQL will start to flush dirty pages from the InnoDB buffer pool, writing the changes to disk. If the log files are small, changes will be written to disk more often, which can cause more disk I/O.

        When InnoDB does a crash recovery, it reads the log files. If the log files are large, it will take longer to recover from a crash. If innodb_fast_shutdown is set to 0, the log files are purged when MySQL shuts down — larger files mean a longer shutdown time. The default for innodb_fast_shutdown is 1, which means that the log files are not purged before a shutdown. Starting in MySQL 5.0.5, you can set it to 2, which simulates a crash, and at the next startup InnoDB will do a crash recovery.

        innodb_flush_log_at_trx_commit controls how often the log files are written to. A value of 0 causes the log files to be written and flushed to disk once per second. The default is 1, which causes the log buffer to be written and flushed to disk after every transaction commit. The value can also be set to 2, which causes the log buffer to be written after every transaction commit and flushes the log files to disk once per second. A value of 2 means that MySQL might think that some changes are written to the log file, but do not persist in the log file after an operating system crash, because the log file was not flushed to disk before a crash.

        Note that some filesystems are not honest about flushing to disk, so even though you may have the default value of 1, your system may be acting as if it has a value of 2. Setting this parameter to 2 means that there will be less I/O, at the cost of not being able to recover data from a crash.

        innodb_flush_method changes how InnoDB opens and flushes data and log files. See the manual for details; the end result is a tradeoff in I/O performance versus whether or not an operating system crash would leave the InnoDB log files in an inconsistent state.

        innodb_log_buffer_size is the write buffer for InnoDB log files. The larger the buffer is, the less often the log files are written to. This can save I/O.

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        Every so often we have a client worrying about unauthenticated users. For example, cardiology as part of the output of SHOW PROCESSLIST they will see:

        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | Id  | User                 | Host               | db   | Command | Time | State | Info             |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | 235 | unauthenticated user | 10.10.2.74:53216   | NULL | Connect | NULL | login | NULL             |
        | 236 | unauthenticated user | 10.120.61.10:51721 | NULL | Connect | NULL | login | NULL             |
        | 237 | user                 | localhost          | NULL | Query   | 0    | NULL  | show processlist |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        

        Who are these unauthenticated users, more about how do they get there, and why aren’t they authenticated?

        The client-server handshake in MySQL is a 4-step process. Those familiar with mysql-proxy already know these steps, as there are four functions that a Lua script in mysql-proxy can override. The process is useful to know for figuring out exactly where a problem is when something breaks.
        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        Every so often we have a client worrying about unauthenticated users. For example, cardiology as part of the output of SHOW PROCESSLIST they will see:

        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | Id  | User                 | Host               | db   | Command | Time | State | Info             |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | 235 | unauthenticated user | 10.10.2.74:53216   | NULL | Connect | NULL | login | NULL             |
        | 236 | unauthenticated user | 10.120.61.10:51721 | NULL | Connect | NULL | login | NULL             |
        | 237 | user                 | localhost          | NULL | Query   | 0    | NULL  | show processlist |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        

        Who are these unauthenticated users, more about how do they get there, and why aren’t they authenticated?

        The client-server handshake in MySQL is a 4-step process. Those familiar with mysql-proxy already know these steps, as there are four functions that a Lua script in mysql-proxy can override. The process is useful to know for figuring out exactly where a problem is when something breaks.
        (more…)

        Get it while it’s hot! The Fall 2008 issue of the MySQL Magazine is now available at including:

        • “Decision Table”-Driven Development by Jonathan Levin
        • Part I of a series on Transaction Time Validity in MySQL by Peter Brawley
        • An Overview of Zmanda Recovery Manager by Pythian’s own Gerry Narvaja
        • Keith Murphy, pills editor has a note about Drizzle.

        Download the PDF directly or go to the MySQL Magazine page to download any and all of the 6 issues.

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        Every so often we have a client worrying about unauthenticated users. For example, cardiology as part of the output of SHOW PROCESSLIST they will see:

        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | Id  | User                 | Host               | db   | Command | Time | State | Info             |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | 235 | unauthenticated user | 10.10.2.74:53216   | NULL | Connect | NULL | login | NULL             |
        | 236 | unauthenticated user | 10.120.61.10:51721 | NULL | Connect | NULL | login | NULL             |
        | 237 | user                 | localhost          | NULL | Query   | 0    | NULL  | show processlist |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        

        Who are these unauthenticated users, more about how do they get there, and why aren’t they authenticated?

        The client-server handshake in MySQL is a 4-step process. Those familiar with mysql-proxy already know these steps, as there are four functions that a Lua script in mysql-proxy can override. The process is useful to know for figuring out exactly where a problem is when something breaks.
        (more…)

        Get it while it’s hot! The Fall 2008 issue of the MySQL Magazine is now available at including:

        • “Decision Table”-Driven Development by Jonathan Levin
        • Part I of a series on Transaction Time Validity in MySQL by Peter Brawley
        • An Overview of Zmanda Recovery Manager by Pythian’s own Gerry Narvaja
        • Keith Murphy, pills editor has a note about Drizzle.

        Download the PDF directly or go to the MySQL Magazine page to download any and all of the 6 issues.

        I was reading Savio Rodrigues’ post, dosage .

        Now, one health Keen feels that people will contribute less during bad financial times:

        The hungry and cold unemployed masses aren’t going to continue giving away their intellectual labor on the Internet in the speculative hope that they might get some “back end” revenue. “Free” doesn’t fill anyone’s belly; it doesn’t warm anyone up.

        I know several volunteer open source developers — I consider this to be a “role” that someone plays. A person may be *employed* as an open source developer (say, working at Sun on MySQL) but may also contribute to another open source project off-the-clock. I would consider that person to be a volunteer open source developer for the off-the-clock project.

        At any rate…very few people volunteer as some kind of investment with a monetary return. (more…)

        Recently I had an interesting issue crop up. Due to an unfortunate migration incident in which involved master/master replication and not checking to see if replication was caught up, surgery buy we ended up with an infinite replication loop of a number of SQL statements. awk helped immensely in the aftermath cleanup.

        The basics of the replication infinite loop were (more…)

        Recently I had an interesting issue crop up. Due to an unfortunate migration incident in which involved master/master replication and not checking to see if replication was caught up, surgery buy we ended up with an infinite replication loop of a number of SQL statements. awk helped immensely in the aftermath cleanup.

        The basics of the replication infinite loop were (more…)

        In my last post, illness a tale of two MySQL upgrades, visit a few folks asked if I would outline the process we used to upgrade, and what kind of downtime we had.

        Well, the processes were different for each upgrade, so I will tackle them in separate blog posts. The first step was to upgrade all our MySQL 5.1 machines to MariaDB 5.5. As mentioned in the previous post, MariaDB’s superior performance for subqueries is why we switched – and we switched back to MySQL for 5.6 to take full advantage of the performance_schema.

        It is not difficult to blog about our procedure, as we have documentation on each process. My first tip would be to do that in your own environment. This also enables other folks to help, even if they are sysadmins and not normally DBAs. You may notice the steps contain items that might be “obvious” to someone who has done maintenance before – we try to write them detailed enough that if you were doing it at 3 am and a bit sleep-deprived, you could follow the checklist and not miss anything. This also helps junior and aspiring DBAs not miss any steps as well.

        The major difference between MySQL 5.1 and MySQL 5.5 (and its forks, like MariaDB) is that FLOAT columns are handled differently. On MySQL 5.1, a float value could be in scientific notation (e.g. 9.58084e-05) and in 5.5, it’s not (e.g. 0.0000958084). This makes checksumming difficult, as all FLOAT values will show differences even when they are the same number. There is a workaround for this, devised by Shlomi Noach.

        We have an n+1 architecture for databases at Mozilla – this means that we have an extra server. If we need 1 master and 3 slaves, then n+1 is 1 master and 4 slaves. Because of this, there are 2 different ways we upgrade – the first slave we upgrade, and subsequent slaves/masters.

        These steps are copied and pasted from our notes, with minor changes (for example, item #2 is “send out maintenance notices” but in our document we have the e-mail addresses to send to).

        Assumptions: Throughout these notes we use ‘/var/lib/mysql’, as that is our standard place for MySQL. You may need to change this to suit your environment. We are also using Red Hat Enterprise Linux for our operating system, so this procedure is tailored to it (e.g. “yum install/yum remove”). We control packages using the freely available puppet mysql module we created.

        For the first slave
        The overall procedure is to perform a logical backup the database, create a new empty installation of the new server version, and import the backup. Replication does work from MySQL 5.1 to MariaDB 5.5 and back (at least, on the 25 or so clusters we have, replication worked in both directions. Your mileage may vary).

        1. Make sure the slave has the same data as the master with checksums (the previous checksum is fine, they should be running every 12 hours).
        2. Send out maintenance notices.

        3. Take the machine out of any load balanced services, if appropriate

        4. Set appropriate downtimes in Nagios

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed. [we have a different checklist for this]

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.

          1. If this machine is a slave, ensure that its master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe [or the slave_master_info table if using that]

        8. Stop access to the machine from anyone other than root (assuming you are connecting from root):

        9. UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        10. See what the default character set is for the server and databases:
          SHOW VARIABLES LIKE 'character_set_server'; SHOW VARIABLES LIKE 'character_set_database';
          SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE DEFAULT_CHARACTER_SET_NAME!='utf8' AND SCHEMA_NAME NOT IN ('mysql');

          If applicable, change the server defaults to UTF8 and change databases to utf8 with ALTER DATABASE dbname DEFAULT CHARACTER SET utf8;

        11. Stop access to the machine from anyone other than root (assuming you are connecting from root): UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;

        12. Check to see how big the data is:
          mysql> SELECT SUM(DATA_LENGTH)/1024/1024/1024 AS sizeGb FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA!='information_schema';

        13. Determine how you can export the data, given the size. You may be able to export without compression, or you may need to do a mysqldump | gzip -c > file.sql, then compress the old data files instead of just moving them aside.

        14. Do a du -sh * of the datadir and save for later, if you want to compare the size of the database to see how much space is returned after defragmenting

        15. Export the data from all databases, preserving character set, routines and triggers. Record the time for documentation’s sake. I’m assuming the character set from step 9 is utf8 (if it’s something like latin1, you’ll need to put in –default-character-set=latin1 in the command). If the machine has slaves, make sure to use –master-data=1. If you need to compress, change the shell command accordingly:
          time mysqldump --all-databases --routines --triggers --events > `date +%Y-%m-%d`_backup.sql
        16. Stop MySQL

        17. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        18. Do a rpm -qa | egrep -i "percona|mysql". Do a yum remove for the mysql/percona packages. It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later. Sample:
          yum remove Percona-Server-client Percona-Server-shared-compat Percona-XtraDB-Cluster-devel Percona-Server-server
        19. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression (if you need to compress, to decompress the sql file). If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        20. Decompress the sql file, if applicable.

        21. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″. Verify with rpm -qa | egrep -i “percona|mysql|maria”
        22. [this may be different in your environment; we use the freely available puppet mysql module we created.
        23. Run mysql_install_db

        24. Make any changes to /etc/my.cnf (e.g. run puppet). When going from MySQL 5.1 to 5.5, there are no particular global changes Mozilla made.
        25. – when we went from MySQL 5.0 to MySQL 5.1, we did a global change to reflect the new slow query log options.
        26. chown -R mysql:mysql /var/lib/mysql/

        27. chmod 775 /var/lib/mysql

        28. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is running.

        29. Turn off binary logging. Import the export, timing how long it takes, for reference:

        30. time mysql < YYYY_MM_DD_backup.sql
        31. Restart MySQL and look for errors, you may need to run mysql_upgrade.

        32. Turn on binary logging, if applicable.

        33. Test.

        34. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        35. Reinstate permissions on the users:
          UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        36. Re-slave any slaves of this machine, if needed.

        37. Turn back on Nagios, making sure all the checks are green first.

        38. Run a checksum on the master to propagate to this slave, and double-check data integrity on the slave. Note that you will want to use --ignore-columns with the output of this command in the checksum, to avoid false positives from scientific notation change (see https://blog.mozilla.org/it/2013/01/17/mysql-5-1-vs-mysql-5-5-floats-doubles-and-scientific-notation/)

        39. Find FLOAT/DOUBLE fields to ignore in checksum: SELECT GROUP_CONCAT(DISTINCT COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE IN ('float','double') AND TABLE_SCHEMA NOT IN ('mysql','information_schema','performance_schema');
        40. Put the machine back into the load balancer, if applicable.

        41. Inform folks the upgrade is over

        On the first upgrade, we did what is usually recommended - do a logical export with mysqldump, and then an import. With other upgrades in the same replication hierarchy, we can take advantage of Xtrabackup to stream the new version directly to the machine to be upgraded.

        The general procedure here is similar to the above, except that a logical export is not taken. After preparation steps are taken, a new empty MariaDB 5.5 server is installed. Then we use xtrabackup to backup and restore the existing MariaDB 5.5 server to the machine we are upgrading.

        For subsequent slaves, and the master

        1. Coordinate with affected parties ahead of time

        2. Send out any notices for downtime

        3. Take the machine out of any load balanced services, if appropriate. If the machine is a master, this means failing over the master first, so that this machine becomes a regular slave. [we have a different checklist for how to failover]

        4. Set appropriate downtimes in Nagios, including for any slaves

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed.

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.
          1. If this machine is a slave, ensure that the master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe

        8. Save a list of grants from pt-show-grants, just in case there are users/permissions that need to be preserved.
        9. [this is done because sometimes masters and slaves have different users, though we try to keep everything consistent]
        10. Figure out how big the backup will be by doing a du -sh on the datadir of the already-upgraded machine to be backed up, and make sure the new machine has enough space to keep the old version and have the new version as well.

        11. Stop MySQL on the machine to be upgraded.

        12. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        13. Do a rpm -qa | egrep -i "mysql|percona". Do a yum remove for the mysql packages (at least mysql-server, mysql). It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later.

        14. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression. If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        15. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″, running puppet manually. Verify with rpm -qa | egrep -i "percona|mysql|maria"

        16. Run mysql_install_db

        17. Make any changes to /etc/my.cnf (or run puppet). When going from MySQL 5.1 to 5.5, there are no particular changes.

        18. chown -R mysql:mysql /var/lib/mysql/

        19. chmod 775 /var/lib/mysql

        20. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is started.

        21. Stop MySQL, and move or delete the datadir that was created on upgrade.

        22. If you are directly streaming the backup to the machine to be upgraded, do this on the machine to be upgraded:
          cd $DATADIR
          nc -l 9999 | tar xfi -

        23. On the machine to be backed up (that is already upgraded), in a screen session, making sure you get any slave info:
          time innobackupex --slave-info --stream=tar $DATADIR | nc (IP/hostname) 9999

        24. Once xtrabackup is complete, fix permissions on the datadir:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        25. Prepare the backup:
          time innobackupex --apply-logs --target-dir=/var/lib/mysql

        26. Fix permissions on the datadir again:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        27. Restart MySQL and look for errors

        28. Test.

        29. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        30. Re-slave any slaves of this machine, if needed.

        31. Turn back on Nagios, making sure all checks are green first.

        32. Put the machine back into the load balancer, if applicable.

        33. Inform folks the upgrade is over

        It’s long and detailed, but not particularly difficult.

A Tale of Two MySQL Upgrades

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Well, mind , who revealed something very interesting and riveting.

From there, Giuseppe gave a short talk on what it’s like to work at MySQL, and then we moved on to the topic of the user group meeting, “What is MySQL Cluster Good For?”

The slides for the talk are downloadable in PDF Format 61kB and Flash (SWF) format, 31kB

The video can be played at http://technocation.org/node/572/play and downloaded (404 Mb) at http://technocation.org/node/572/download.

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Well, mind , who revealed something very interesting and riveting.

From there, Giuseppe gave a short talk on what it’s like to work at MySQL, and then we moved on to the topic of the user group meeting, “What is MySQL Cluster Good For?”

The slides for the talk are downloadable in PDF Format 61kB and Flash (SWF) format, 31kB

The video can be played at http://technocation.org/node/572/play and downloaded (404 Mb) at http://technocation.org/node/572/download.

The last keynote of Tuesday evening at OSCon 2008 was entitled “Temporarily Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…..Made Easy!”

Damian Conway is a speaker that should not be missed. He spends his time hacking perl to do fascinating and obscure feats of technology such as time travel. This video is just over an hour of rolling laughter that will entertain you into realizing what a genius Damian Conway is.

Now, side effects so if folks could pass the links to the video along to other communities, viagra buy that would be great.

(This video is at 1.0 Mb/sec. Watch the video online at http://technocation.org/node/571/play or download it at http://technocation.org/node/571/download. Please do not download the file if you are on the conference network, these links are not time sensitive.)

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Well, mind , who revealed something very interesting and riveting.

From there, Giuseppe gave a short talk on what it’s like to work at MySQL, and then we moved on to the topic of the user group meeting, “What is MySQL Cluster Good For?”

The slides for the talk are downloadable in PDF Format 61kB and Flash (SWF) format, 31kB

The video can be played at http://technocation.org/node/572/play and downloaded (404 Mb) at http://technocation.org/node/572/download.

The last keynote of Tuesday evening at OSCon 2008 was entitled “Temporarily Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…..Made Easy!”

Damian Conway is a speaker that should not be missed. He spends his time hacking perl to do fascinating and obscure feats of technology such as time travel. This video is just over an hour of rolling laughter that will entertain you into realizing what a genius Damian Conway is.

Now, side effects so if folks could pass the links to the video along to other communities, viagra buy that would be great.

(This video is at 1.0 Mb/sec. Watch the video online at http://technocation.org/node/571/play or download it at http://technocation.org/node/571/download. Please do not download the file if you are on the conference network, these links are not time sensitive.)

Liveblogging from OSCon 2008: Going Open Source, treatment The 20 Most Important Things to Do – by Martin Aschoff of AGNITAS AS.

Firstly I have to extend a heartfelt “thank you” to Sun Microsystems and Monty Widenius, as I would not have been able to attend OSCon without their assistance.

AGNITAS AS makes e-marketing software, 25 employees, no venture capital, from Munich, Germany. The municipality of Munich runs entirely on Linux desktops and on infrastructures with open source software.

This session is about the nuts and bolts of an open source company. Aschoff kept a journal of the key learnings of the company when it went open source, and has become a board member of the Open Source Business Association in Europe.

Before deciding on going open source:
(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

(more…)

I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

(more…)

I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

In two words: online operations. In a paragraph: Forget partitioning, dosage are the online operations:

  • online ALTER TABLE for column rename, human enhancement column default value change, purchase and adding values to the end of an ENUM/SET
  • Online, table-based logging. No more need to restart your server to enable or change the general or slow query logs. You can have the standard file-based output or choose a table format…which you can query.
  • (more…)

    Yesterday I had a good conversation with

    My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

    That’s not the case at all.
    (more…)

    This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

    Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

    Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

    The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

    Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

    Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

    But wait! There are some more updates!

    (more…)

    As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

    The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

    (more…)

    I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

    My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

    In two words: online operations. In a paragraph: Forget partitioning, dosage are the online operations:

    • online ALTER TABLE for column rename, human enhancement column default value change, purchase and adding values to the end of an ENUM/SET
    • Online, table-based logging. No more need to restart your server to enable or change the general or slow query logs. You can have the standard file-based output or choose a table format…which you can query.
    • (more…)

      My parents instilled upon me many values that I keep with me today. My twin brother and I are the youngest of four children, nurse screeching “Mine! Mine!”

      My father’s response to this was to look at us and say “These toys are mine; I bought those toys with money I worked for. What’s yours is what you make with your bodies.” While the sentiment is arguably harsh, weight loss crude and bordering on vulgar, I cannot argue that he had a certain point.

      If you do not truly own something, you will be left squabbling like a child when your perceived ownership is threatened. When you assumed you owned something and the truth comes to light, you will be massively insecure and have a sense of injustice.

      A few points from OSCon are haunting me and getting me to think about what FLOSS means to me, and what I want from it.

      — Open source is important even if you never read one line of source code or make one modification. The fact that anyone can read and write the source code is critical even if nobody besides the original engineer(s) ever does.

      (more…)

      Yesterday I had a good conversation with

      My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

      That’s not the case at all.
      (more…)

      This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

      Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

      Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

      The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

      Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

      Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

      But wait! There are some more updates!

      (more…)

      As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

      The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

      (more…)

      I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

      My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

      In two words: online operations. In a paragraph: Forget partitioning, dosage are the online operations:

      • online ALTER TABLE for column rename, human enhancement column default value change, purchase and adding values to the end of an ENUM/SET
      • Online, table-based logging. No more need to restart your server to enable or change the general or slow query logs. You can have the standard file-based output or choose a table format…which you can query.
      • (more…)

        My parents instilled upon me many values that I keep with me today. My twin brother and I are the youngest of four children, nurse screeching “Mine! Mine!”

        My father’s response to this was to look at us and say “These toys are mine; I bought those toys with money I worked for. What’s yours is what you make with your bodies.” While the sentiment is arguably harsh, weight loss crude and bordering on vulgar, I cannot argue that he had a certain point.

        If you do not truly own something, you will be left squabbling like a child when your perceived ownership is threatened. When you assumed you owned something and the truth comes to light, you will be massively insecure and have a sense of injustice.

        A few points from OSCon are haunting me and getting me to think about what FLOSS means to me, and what I want from it.

        — Open source is important even if you never read one line of source code or make one modification. The fact that anyone can read and write the source code is critical even if nobody besides the original engineer(s) ever does.

        (more…)

        ValleyWag reports that MySQL’s Monty Widenius is no longer “MySQL’s”. Some folks have known that Monty has not been happy in his current position; this leads me to believe the rumor is true (though of course an official announcement is the only confirmation).

        So what does this mean for MySQL? Well, patient honestly, viagra 40mg if a product falls apart because one out of 300 employees leaves, it was probably doomed anyway. There are plenty of capable employees left, and being owned by Sun means that there are many more resources they can tap as well.

        What will the official company announcement be? My prediction is (more…)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        Though the event is still happening in Charlottesville, click , price and a captcha has been put in place that is activated on any page change that adds an external URL.

        Whether you are into MySQL, drugstore PostgreSQL, Drizzle, or some other open source SQL database, go forth and register for OpenSQL Camp, without having to login! (Disclosure: if you do not create a login, your IP is tracked.)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        Though the event is still happening in Charlottesville, click , price and a captcha has been put in place that is activated on any page change that adds an external URL.

        Whether you are into MySQL, drugstore PostgreSQL, Drizzle, or some other open source SQL database, go forth and register for OpenSQL Camp, without having to login! (Disclosure: if you do not create a login, your IP is tracked.)

        As I putter around the MySQL INFORMATION_SCHEMA, order I am finding lots of undocumented behavior for fields that should be straightforward. For example, read the VIEWS table holds information about views, and the VIEW_DEFINITION field contains the view definition, right?

        Well, when I was looking at the VIEW_DEFINITION today, I noticed an odd thing. Even though I had permissions to see the view definition (as proven by the SHOW CREATE VIEW command), the INFORMATION_SCHEMA.VIEWS table sometimes came up blank for the VIEW_DEFINITION. I had to figure out why, and now that I know, I’m not sure if it’s a bug or a feature…..can you figure it out?

        mysql> USE INFORMATION_SCHEMA;
        Database changed
        mysql> SELECT TABLE_NAME,VIEW_DEFINITION FROM VIEWS WHERE TABLE_SCHEMA='sakila';
        
        +----------------------------+-----------------+
        | TABLE_NAME                 | VIEW_DEFINITION |
        +----------------------------+-----------------+
        | actor_info                 |                 |
        | customer_list              |                 |
        | film_list                  |                 |
        | nicer_but_slower_film_list |                 |
        | sales_by_film_category     |                 |
        | sales_by_store             |                 |
        | staff_list                 |                 |
        +----------------------------+-----------------+
        7 rows in set (0.16 sec)
        
        mysql> SHOW CREATE VIEW sakila.actor_infoG
        *************************** 1. row ***************************
        View: actor_info
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY INVOKER VIEW `sakila`.`actor_info` AS select `a`.`actor_id` AS `actor_i
        d`,`a`.`first_name` AS `first_name`,`a`.`last_name` AS `last_name`,group_concat(
        distinct concat(`c`.`name`,': ',(select group_concat(`f`.`title` order by `f`.`t
        itle` ASC separator ', ') AS `GROUP_CONCAT(f.title ORDER BY f.title SEPARATOR ',
        ')` from ((`sakila`.`film` `f` join `sakila`.`film_category` `fc` on((`f`.`film
        _id` = `fc`.`film_id`))) join `sakila`.`film_actor` `fa` on((`f`.`film_id` = `fa
        `.`film_id`))) where ((`fc`.`category_id` = `c`.`category_id`) and (`fa`.`actor_
        id` = `a`.`actor_id`)))) order by `c`.`name` ASC separator '; ') AS `film_info`
        from (((`sakila`.`actor` `a` left join `sakila`.`film_actor` `fa` on((`a`.`actor
        _id` = `fa`.`actor_id`))) left join `sakila`.`film_category` `fc` on((`fa`.`film
        _id` = `fc`.`film_id`))) left join `sakila`.`category` `c` on((`fc`.`category_id
        ` = `c`.`category_id`))) group by `a`.`actor_id`,`a`.`first_name`,`a`.`last_name
        `
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.02 sec)
        
        mysql> SHOW CREATE VIEW sakila.customer_listG
        *************************** 1. row ***************************
        View: customer_list
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY DEFINER VIEW `sakila`.`customer_list` AS select `cu`.`customer_id` AS `
        ID`,concat(`cu`.`first_name`,_utf8' ',`cu`.`last_name`) AS `name`,`a`.`address`
        AS `address`,`a`.`postal_code` AS `zip code`,`a`.`phone` AS `phone`,`sakila`.`ci
        ty`.`city` AS `city`,`sakila`.`country`.`country` AS `country`,if(`cu`.`active`,
        _utf8'active',_utf8'') AS `notes`,`cu`.`store_id` AS `SID` from (((`sakila`.`cus
        tomer` `cu` join `sakila`.`address` `a` on((`cu`.`address_id` = `a`.`address_id`
        ))) join `sakila`.`city` on((`a`.`city_id` = `sakila`.`city`.`city_id`))) join `
        sakila`.`country` on((`sakila`.`city`.`country_id` = `sakila`.`country`.`country
        _id`)))
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.00 sec)
        
        mysql>
        

        (some people read the dictionary, I read the data dictionary!)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        Though the event is still happening in Charlottesville, click , price and a captcha has been put in place that is activated on any page change that adds an external URL.

        Whether you are into MySQL, drugstore PostgreSQL, Drizzle, or some other open source SQL database, go forth and register for OpenSQL Camp, without having to login! (Disclosure: if you do not create a login, your IP is tracked.)

        As I putter around the MySQL INFORMATION_SCHEMA, order I am finding lots of undocumented behavior for fields that should be straightforward. For example, read the VIEWS table holds information about views, and the VIEW_DEFINITION field contains the view definition, right?

        Well, when I was looking at the VIEW_DEFINITION today, I noticed an odd thing. Even though I had permissions to see the view definition (as proven by the SHOW CREATE VIEW command), the INFORMATION_SCHEMA.VIEWS table sometimes came up blank for the VIEW_DEFINITION. I had to figure out why, and now that I know, I’m not sure if it’s a bug or a feature…..can you figure it out?

        mysql> USE INFORMATION_SCHEMA;
        Database changed
        mysql> SELECT TABLE_NAME,VIEW_DEFINITION FROM VIEWS WHERE TABLE_SCHEMA='sakila';
        
        +----------------------------+-----------------+
        | TABLE_NAME                 | VIEW_DEFINITION |
        +----------------------------+-----------------+
        | actor_info                 |                 |
        | customer_list              |                 |
        | film_list                  |                 |
        | nicer_but_slower_film_list |                 |
        | sales_by_film_category     |                 |
        | sales_by_store             |                 |
        | staff_list                 |                 |
        +----------------------------+-----------------+
        7 rows in set (0.16 sec)
        
        mysql> SHOW CREATE VIEW sakila.actor_infoG
        *************************** 1. row ***************************
        View: actor_info
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY INVOKER VIEW `sakila`.`actor_info` AS select `a`.`actor_id` AS `actor_i
        d`,`a`.`first_name` AS `first_name`,`a`.`last_name` AS `last_name`,group_concat(
        distinct concat(`c`.`name`,': ',(select group_concat(`f`.`title` order by `f`.`t
        itle` ASC separator ', ') AS `GROUP_CONCAT(f.title ORDER BY f.title SEPARATOR ',
        ')` from ((`sakila`.`film` `f` join `sakila`.`film_category` `fc` on((`f`.`film
        _id` = `fc`.`film_id`))) join `sakila`.`film_actor` `fa` on((`f`.`film_id` = `fa
        `.`film_id`))) where ((`fc`.`category_id` = `c`.`category_id`) and (`fa`.`actor_
        id` = `a`.`actor_id`)))) order by `c`.`name` ASC separator '; ') AS `film_info`
        from (((`sakila`.`actor` `a` left join `sakila`.`film_actor` `fa` on((`a`.`actor
        _id` = `fa`.`actor_id`))) left join `sakila`.`film_category` `fc` on((`fa`.`film
        _id` = `fc`.`film_id`))) left join `sakila`.`category` `c` on((`fc`.`category_id
        ` = `c`.`category_id`))) group by `a`.`actor_id`,`a`.`first_name`,`a`.`last_name
        `
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.02 sec)
        
        mysql> SHOW CREATE VIEW sakila.customer_listG
        *************************** 1. row ***************************
        View: customer_list
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY DEFINER VIEW `sakila`.`customer_list` AS select `cu`.`customer_id` AS `
        ID`,concat(`cu`.`first_name`,_utf8' ',`cu`.`last_name`) AS `name`,`a`.`address`
        AS `address`,`a`.`postal_code` AS `zip code`,`a`.`phone` AS `phone`,`sakila`.`ci
        ty`.`city` AS `city`,`sakila`.`country`.`country` AS `country`,if(`cu`.`active`,
        _utf8'active',_utf8'') AS `notes`,`cu`.`store_id` AS `SID` from (((`sakila`.`cus
        tomer` `cu` join `sakila`.`address` `a` on((`cu`.`address_id` = `a`.`address_id`
        ))) join `sakila`.`city` on((`a`.`city_id` = `sakila`.`city`.`city_id`))) join `
        sakila`.`country` on((`sakila`.`city`.`country_id` = `sakila`.`country`.`country
        _id`)))
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.00 sec)
        
        mysql>
        

        (some people read the dictionary, I read the data dictionary!)

        The unsung heroes of InnoDB are the logfiles. They are what makes InnoDB automatic crash recovery possible.

        Database administrators of other DBMS may be familiar with the concept of a “redo” log. When data is changed, life affected data pages are changed in the innodb_buffer_pool. Then, ailment the change is written to the redo log, stomatology which in MySQL is the InnoDB logfile (ib_logfile0 and ib_logfile1). The pages are marked as “dirty”, and eventually get flushed and written to disk.

        If MySQL crashes, there may be data that is changed that has not been written to disk. Those data pages were marked as “dirty” in the innodb_buffer_pool, but after a MySQL crash the innodb_buffer_pool no longer exists. However, they were written to the redo log. On crash recovery, MySQL can read the redo log (InnoDB log files) and apply any changes that were not written to disk.

        That is the basic functionality of the InnoDB log files. Given this, let’s look at some of the different parameters and their ramifications.

        innodb_log_files_in_group is set with a default of 2. The logfiles are written in a circular manner — ib_logfile0 is written first, and when it has reached its maximum size, then ib_logfile1 will be written to.

        innodb_log_file_size is the size of each log file in the log group. The total, combined size of all the log files has to be less than 4 Gb (according to the MySQL manual). Because the logfiles contain changes in the buffer pool that have not been written to disk, the total, combined size of all the log files should not be more than the innodb_buffer_pool_size.

        If all the log files in the group are full of changes that have not been written to disk, MySQL will start to flush dirty pages from the InnoDB buffer pool, writing the changes to disk. If the log files are small, changes will be written to disk more often, which can cause more disk I/O.

        When InnoDB does a crash recovery, it reads the log files. If the log files are large, it will take longer to recover from a crash. If innodb_fast_shutdown is set to 0, the log files are purged when MySQL shuts down — larger files mean a longer shutdown time. The default for innodb_fast_shutdown is 1, which means that the log files are not purged before a shutdown. Starting in MySQL 5.0.5, you can set it to 2, which simulates a crash, and at the next startup InnoDB will do a crash recovery.

        innodb_flush_log_at_trx_commit controls how often the log files are written to. A value of 0 causes the log files to be written and flushed to disk once per second. The default is 1, which causes the log buffer to be written and flushed to disk after every transaction commit. The value can also be set to 2, which causes the log buffer to be written after every transaction commit and flushes the log files to disk once per second. A value of 2 means that MySQL might think that some changes are written to the log file, but do not persist in the log file after an operating system crash, because the log file was not flushed to disk before a crash.

        Note that some filesystems are not honest about flushing to disk, so even though you may have the default value of 1, your system may be acting as if it has a value of 2. Setting this parameter to 2 means that there will be less I/O, at the cost of not being able to recover data from a crash.

        innodb_flush_method changes how InnoDB opens and flushes data and log files. See the manual for details; the end result is a tradeoff in I/O performance versus whether or not an operating system crash would leave the InnoDB log files in an inconsistent state.

        innodb_log_buffer_size is the write buffer for InnoDB log files. The larger the buffer is, the less often the log files are written to. This can save I/O.

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        Every so often we have a client worrying about unauthenticated users. For example, cardiology as part of the output of SHOW PROCESSLIST they will see:

        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | Id  | User                 | Host               | db   | Command | Time | State | Info             |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | 235 | unauthenticated user | 10.10.2.74:53216   | NULL | Connect | NULL | login | NULL             |
        | 236 | unauthenticated user | 10.120.61.10:51721 | NULL | Connect | NULL | login | NULL             |
        | 237 | user                 | localhost          | NULL | Query   | 0    | NULL  | show processlist |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        

        Who are these unauthenticated users, more about how do they get there, and why aren’t they authenticated?

        The client-server handshake in MySQL is a 4-step process. Those familiar with mysql-proxy already know these steps, as there are four functions that a Lua script in mysql-proxy can override. The process is useful to know for figuring out exactly where a problem is when something breaks.
        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        Every so often we have a client worrying about unauthenticated users. For example, cardiology as part of the output of SHOW PROCESSLIST they will see:

        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | Id  | User                 | Host               | db   | Command | Time | State | Info             |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | 235 | unauthenticated user | 10.10.2.74:53216   | NULL | Connect | NULL | login | NULL             |
        | 236 | unauthenticated user | 10.120.61.10:51721 | NULL | Connect | NULL | login | NULL             |
        | 237 | user                 | localhost          | NULL | Query   | 0    | NULL  | show processlist |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        

        Who are these unauthenticated users, more about how do they get there, and why aren’t they authenticated?

        The client-server handshake in MySQL is a 4-step process. Those familiar with mysql-proxy already know these steps, as there are four functions that a Lua script in mysql-proxy can override. The process is useful to know for figuring out exactly where a problem is when something breaks.
        (more…)

        Get it while it’s hot! The Fall 2008 issue of the MySQL Magazine is now available at including:

        • “Decision Table”-Driven Development by Jonathan Levin
        • Part I of a series on Transaction Time Validity in MySQL by Peter Brawley
        • An Overview of Zmanda Recovery Manager by Pythian’s own Gerry Narvaja
        • Keith Murphy, pills editor has a note about Drizzle.

        Download the PDF directly or go to the MySQL Magazine page to download any and all of the 6 issues.

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        Every so often we have a client worrying about unauthenticated users. For example, cardiology as part of the output of SHOW PROCESSLIST they will see:

        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | Id  | User                 | Host               | db   | Command | Time | State | Info             |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | 235 | unauthenticated user | 10.10.2.74:53216   | NULL | Connect | NULL | login | NULL             |
        | 236 | unauthenticated user | 10.120.61.10:51721 | NULL | Connect | NULL | login | NULL             |
        | 237 | user                 | localhost          | NULL | Query   | 0    | NULL  | show processlist |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        

        Who are these unauthenticated users, more about how do they get there, and why aren’t they authenticated?

        The client-server handshake in MySQL is a 4-step process. Those familiar with mysql-proxy already know these steps, as there are four functions that a Lua script in mysql-proxy can override. The process is useful to know for figuring out exactly where a problem is when something breaks.
        (more…)

        Get it while it’s hot! The Fall 2008 issue of the MySQL Magazine is now available at including:

        • “Decision Table”-Driven Development by Jonathan Levin
        • Part I of a series on Transaction Time Validity in MySQL by Peter Brawley
        • An Overview of Zmanda Recovery Manager by Pythian’s own Gerry Narvaja
        • Keith Murphy, pills editor has a note about Drizzle.

        Download the PDF directly or go to the MySQL Magazine page to download any and all of the 6 issues.

        I was reading Savio Rodrigues’ post, dosage .

        Now, one health Keen feels that people will contribute less during bad financial times:

        The hungry and cold unemployed masses aren’t going to continue giving away their intellectual labor on the Internet in the speculative hope that they might get some “back end” revenue. “Free” doesn’t fill anyone’s belly; it doesn’t warm anyone up.

        I know several volunteer open source developers — I consider this to be a “role” that someone plays. A person may be *employed* as an open source developer (say, working at Sun on MySQL) but may also contribute to another open source project off-the-clock. I would consider that person to be a volunteer open source developer for the off-the-clock project.

        At any rate…very few people volunteer as some kind of investment with a monetary return. (more…)

        Recently I had an interesting issue crop up. Due to an unfortunate migration incident in which involved master/master replication and not checking to see if replication was caught up, surgery buy we ended up with an infinite replication loop of a number of SQL statements. awk helped immensely in the aftermath cleanup.

        The basics of the replication infinite loop were (more…)

        Recently I had an interesting issue crop up. Due to an unfortunate migration incident in which involved master/master replication and not checking to see if replication was caught up, surgery buy we ended up with an infinite replication loop of a number of SQL statements. awk helped immensely in the aftermath cleanup.

        The basics of the replication infinite loop were (more…)

        In my last post, illness a tale of two MySQL upgrades, visit a few folks asked if I would outline the process we used to upgrade, and what kind of downtime we had.

        Well, the processes were different for each upgrade, so I will tackle them in separate blog posts. The first step was to upgrade all our MySQL 5.1 machines to MariaDB 5.5. As mentioned in the previous post, MariaDB’s superior performance for subqueries is why we switched – and we switched back to MySQL for 5.6 to take full advantage of the performance_schema.

        It is not difficult to blog about our procedure, as we have documentation on each process. My first tip would be to do that in your own environment. This also enables other folks to help, even if they are sysadmins and not normally DBAs. You may notice the steps contain items that might be “obvious” to someone who has done maintenance before – we try to write them detailed enough that if you were doing it at 3 am and a bit sleep-deprived, you could follow the checklist and not miss anything. This also helps junior and aspiring DBAs not miss any steps as well.

        The major difference between MySQL 5.1 and MySQL 5.5 (and its forks, like MariaDB) is that FLOAT columns are handled differently. On MySQL 5.1, a float value could be in scientific notation (e.g. 9.58084e-05) and in 5.5, it’s not (e.g. 0.0000958084). This makes checksumming difficult, as all FLOAT values will show differences even when they are the same number. There is a workaround for this, devised by Shlomi Noach.

        We have an n+1 architecture for databases at Mozilla – this means that we have an extra server. If we need 1 master and 3 slaves, then n+1 is 1 master and 4 slaves. Because of this, there are 2 different ways we upgrade – the first slave we upgrade, and subsequent slaves/masters.

        These steps are copied and pasted from our notes, with minor changes (for example, item #2 is “send out maintenance notices” but in our document we have the e-mail addresses to send to).

        Assumptions: Throughout these notes we use ‘/var/lib/mysql’, as that is our standard place for MySQL. You may need to change this to suit your environment. We are also using Red Hat Enterprise Linux for our operating system, so this procedure is tailored to it (e.g. “yum install/yum remove”). We control packages using the freely available puppet mysql module we created.

        For the first slave
        The overall procedure is to perform a logical backup the database, create a new empty installation of the new server version, and import the backup. Replication does work from MySQL 5.1 to MariaDB 5.5 and back (at least, on the 25 or so clusters we have, replication worked in both directions. Your mileage may vary).

        1. Make sure the slave has the same data as the master with checksums (the previous checksum is fine, they should be running every 12 hours).
        2. Send out maintenance notices.

        3. Take the machine out of any load balanced services, if appropriate

        4. Set appropriate downtimes in Nagios

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed. [we have a different checklist for this]

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.

          1. If this machine is a slave, ensure that its master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe [or the slave_master_info table if using that]

        8. Stop access to the machine from anyone other than root (assuming you are connecting from root):

        9. UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        10. See what the default character set is for the server and databases:
          SHOW VARIABLES LIKE 'character_set_server'; SHOW VARIABLES LIKE 'character_set_database';
          SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE DEFAULT_CHARACTER_SET_NAME!='utf8' AND SCHEMA_NAME NOT IN ('mysql');

          If applicable, change the server defaults to UTF8 and change databases to utf8 with ALTER DATABASE dbname DEFAULT CHARACTER SET utf8;

        11. Stop access to the machine from anyone other than root (assuming you are connecting from root): UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;

        12. Check to see how big the data is:
          mysql> SELECT SUM(DATA_LENGTH)/1024/1024/1024 AS sizeGb FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA!='information_schema';

        13. Determine how you can export the data, given the size. You may be able to export without compression, or you may need to do a mysqldump | gzip -c > file.sql, then compress the old data files instead of just moving them aside.

        14. Do a du -sh * of the datadir and save for later, if you want to compare the size of the database to see how much space is returned after defragmenting

        15. Export the data from all databases, preserving character set, routines and triggers. Record the time for documentation’s sake. I’m assuming the character set from step 9 is utf8 (if it’s something like latin1, you’ll need to put in –default-character-set=latin1 in the command). If the machine has slaves, make sure to use –master-data=1. If you need to compress, change the shell command accordingly:
          time mysqldump --all-databases --routines --triggers --events > `date +%Y-%m-%d`_backup.sql
        16. Stop MySQL

        17. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        18. Do a rpm -qa | egrep -i "percona|mysql". Do a yum remove for the mysql/percona packages. It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later. Sample:
          yum remove Percona-Server-client Percona-Server-shared-compat Percona-XtraDB-Cluster-devel Percona-Server-server
        19. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression (if you need to compress, to decompress the sql file). If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        20. Decompress the sql file, if applicable.

        21. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″. Verify with rpm -qa | egrep -i “percona|mysql|maria”
        22. [this may be different in your environment; we use the freely available puppet mysql module we created.
        23. Run mysql_install_db

        24. Make any changes to /etc/my.cnf (e.g. run puppet). When going from MySQL 5.1 to 5.5, there are no particular global changes Mozilla made.
        25. – when we went from MySQL 5.0 to MySQL 5.1, we did a global change to reflect the new slow query log options.
        26. chown -R mysql:mysql /var/lib/mysql/

        27. chmod 775 /var/lib/mysql

        28. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is running.

        29. Turn off binary logging. Import the export, timing how long it takes, for reference:

        30. time mysql < YYYY_MM_DD_backup.sql
        31. Restart MySQL and look for errors, you may need to run mysql_upgrade.

        32. Turn on binary logging, if applicable.

        33. Test.

        34. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        35. Reinstate permissions on the users:
          UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        36. Re-slave any slaves of this machine, if needed.

        37. Turn back on Nagios, making sure all the checks are green first.

        38. Run a checksum on the master to propagate to this slave, and double-check data integrity on the slave. Note that you will want to use --ignore-columns with the output of this command in the checksum, to avoid false positives from scientific notation change (see https://blog.mozilla.org/it/2013/01/17/mysql-5-1-vs-mysql-5-5-floats-doubles-and-scientific-notation/)

        39. Find FLOAT/DOUBLE fields to ignore in checksum: SELECT GROUP_CONCAT(DISTINCT COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE IN ('float','double') AND TABLE_SCHEMA NOT IN ('mysql','information_schema','performance_schema');
        40. Put the machine back into the load balancer, if applicable.

        41. Inform folks the upgrade is over

        On the first upgrade, we did what is usually recommended - do a logical export with mysqldump, and then an import. With other upgrades in the same replication hierarchy, we can take advantage of Xtrabackup to stream the new version directly to the machine to be upgraded.

        The general procedure here is similar to the above, except that a logical export is not taken. After preparation steps are taken, a new empty MariaDB 5.5 server is installed. Then we use xtrabackup to backup and restore the existing MariaDB 5.5 server to the machine we are upgrading.

        For subsequent slaves, and the master

        1. Coordinate with affected parties ahead of time

        2. Send out any notices for downtime

        3. Take the machine out of any load balanced services, if appropriate. If the machine is a master, this means failing over the master first, so that this machine becomes a regular slave. [we have a different checklist for how to failover]

        4. Set appropriate downtimes in Nagios, including for any slaves

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed.

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.
          1. If this machine is a slave, ensure that the master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe

        8. Save a list of grants from pt-show-grants, just in case there are users/permissions that need to be preserved.
        9. [this is done because sometimes masters and slaves have different users, though we try to keep everything consistent]
        10. Figure out how big the backup will be by doing a du -sh on the datadir of the already-upgraded machine to be backed up, and make sure the new machine has enough space to keep the old version and have the new version as well.

        11. Stop MySQL on the machine to be upgraded.

        12. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        13. Do a rpm -qa | egrep -i "mysql|percona". Do a yum remove for the mysql packages (at least mysql-server, mysql). It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later.

        14. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression. If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        15. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″, running puppet manually. Verify with rpm -qa | egrep -i "percona|mysql|maria"

        16. Run mysql_install_db

        17. Make any changes to /etc/my.cnf (or run puppet). When going from MySQL 5.1 to 5.5, there are no particular changes.

        18. chown -R mysql:mysql /var/lib/mysql/

        19. chmod 775 /var/lib/mysql

        20. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is started.

        21. Stop MySQL, and move or delete the datadir that was created on upgrade.

        22. If you are directly streaming the backup to the machine to be upgraded, do this on the machine to be upgraded:
          cd $DATADIR
          nc -l 9999 | tar xfi -

        23. On the machine to be backed up (that is already upgraded), in a screen session, making sure you get any slave info:
          time innobackupex --slave-info --stream=tar $DATADIR | nc (IP/hostname) 9999

        24. Once xtrabackup is complete, fix permissions on the datadir:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        25. Prepare the backup:
          time innobackupex --apply-logs --target-dir=/var/lib/mysql

        26. Fix permissions on the datadir again:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        27. Restart MySQL and look for errors

        28. Test.

        29. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        30. Re-slave any slaves of this machine, if needed.

        31. Turn back on Nagios, making sure all checks are green first.

        32. Put the machine back into the load balancer, if applicable.

        33. Inform folks the upgrade is over

        It’s long and detailed, but not particularly difficult.

        Recently I had an interesting issue crop up. Due to an unfortunate migration incident in which involved master/master replication and not checking to see if replication was caught up, surgery buy we ended up with an infinite replication loop of a number of SQL statements. awk helped immensely in the aftermath cleanup.

        The basics of the replication infinite loop were (more…)

        In my last post, illness a tale of two MySQL upgrades, visit a few folks asked if I would outline the process we used to upgrade, and what kind of downtime we had.

        Well, the processes were different for each upgrade, so I will tackle them in separate blog posts. The first step was to upgrade all our MySQL 5.1 machines to MariaDB 5.5. As mentioned in the previous post, MariaDB’s superior performance for subqueries is why we switched – and we switched back to MySQL for 5.6 to take full advantage of the performance_schema.

        It is not difficult to blog about our procedure, as we have documentation on each process. My first tip would be to do that in your own environment. This also enables other folks to help, even if they are sysadmins and not normally DBAs. You may notice the steps contain items that might be “obvious” to someone who has done maintenance before – we try to write them detailed enough that if you were doing it at 3 am and a bit sleep-deprived, you could follow the checklist and not miss anything. This also helps junior and aspiring DBAs not miss any steps as well.

        The major difference between MySQL 5.1 and MySQL 5.5 (and its forks, like MariaDB) is that FLOAT columns are handled differently. On MySQL 5.1, a float value could be in scientific notation (e.g. 9.58084e-05) and in 5.5, it’s not (e.g. 0.0000958084). This makes checksumming difficult, as all FLOAT values will show differences even when they are the same number. There is a workaround for this, devised by Shlomi Noach.

        We have an n+1 architecture for databases at Mozilla – this means that we have an extra server. If we need 1 master and 3 slaves, then n+1 is 1 master and 4 slaves. Because of this, there are 2 different ways we upgrade – the first slave we upgrade, and subsequent slaves/masters.

        These steps are copied and pasted from our notes, with minor changes (for example, item #2 is “send out maintenance notices” but in our document we have the e-mail addresses to send to).

        Assumptions: Throughout these notes we use ‘/var/lib/mysql’, as that is our standard place for MySQL. You may need to change this to suit your environment. We are also using Red Hat Enterprise Linux for our operating system, so this procedure is tailored to it (e.g. “yum install/yum remove”). We control packages using the freely available puppet mysql module we created.

        For the first slave
        The overall procedure is to perform a logical backup the database, create a new empty installation of the new server version, and import the backup. Replication does work from MySQL 5.1 to MariaDB 5.5 and back (at least, on the 25 or so clusters we have, replication worked in both directions. Your mileage may vary).

        1. Make sure the slave has the same data as the master with checksums (the previous checksum is fine, they should be running every 12 hours).
        2. Send out maintenance notices.

        3. Take the machine out of any load balanced services, if appropriate

        4. Set appropriate downtimes in Nagios

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed. [we have a different checklist for this]

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.

          1. If this machine is a slave, ensure that its master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe [or the slave_master_info table if using that]

        8. Stop access to the machine from anyone other than root (assuming you are connecting from root):

        9. UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        10. See what the default character set is for the server and databases:
          SHOW VARIABLES LIKE 'character_set_server'; SHOW VARIABLES LIKE 'character_set_database';
          SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE DEFAULT_CHARACTER_SET_NAME!='utf8' AND SCHEMA_NAME NOT IN ('mysql');

          If applicable, change the server defaults to UTF8 and change databases to utf8 with ALTER DATABASE dbname DEFAULT CHARACTER SET utf8;

        11. Stop access to the machine from anyone other than root (assuming you are connecting from root): UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;

        12. Check to see how big the data is:
          mysql> SELECT SUM(DATA_LENGTH)/1024/1024/1024 AS sizeGb FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA!='information_schema';

        13. Determine how you can export the data, given the size. You may be able to export without compression, or you may need to do a mysqldump | gzip -c > file.sql, then compress the old data files instead of just moving them aside.

        14. Do a du -sh * of the datadir and save for later, if you want to compare the size of the database to see how much space is returned after defragmenting

        15. Export the data from all databases, preserving character set, routines and triggers. Record the time for documentation’s sake. I’m assuming the character set from step 9 is utf8 (if it’s something like latin1, you’ll need to put in –default-character-set=latin1 in the command). If the machine has slaves, make sure to use –master-data=1. If you need to compress, change the shell command accordingly:
          time mysqldump --all-databases --routines --triggers --events > `date +%Y-%m-%d`_backup.sql
        16. Stop MySQL

        17. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        18. Do a rpm -qa | egrep -i "percona|mysql". Do a yum remove for the mysql/percona packages. It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later. Sample:
          yum remove Percona-Server-client Percona-Server-shared-compat Percona-XtraDB-Cluster-devel Percona-Server-server
        19. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression (if you need to compress, to decompress the sql file). If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        20. Decompress the sql file, if applicable.

        21. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″. Verify with rpm -qa | egrep -i “percona|mysql|maria”
        22. [this may be different in your environment; we use the freely available puppet mysql module we created.
        23. Run mysql_install_db

        24. Make any changes to /etc/my.cnf (e.g. run puppet). When going from MySQL 5.1 to 5.5, there are no particular global changes Mozilla made.
        25. - when we went from MySQL 5.0 to MySQL 5.1, we did a global change to reflect the new slow query log options.
        26. chown -R mysql:mysql /var/lib/mysql/

        27. chmod 775 /var/lib/mysql

        28. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is running.

        29. Turn off binary logging. Import the export, timing how long it takes, for reference:

        30. time mysql < YYYY_MM_DD_backup.sql
        31. Restart MySQL and look for errors, you may need to run mysql_upgrade.

        32. Turn on binary logging, if applicable.

        33. Test.

        34. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        35. Reinstate permissions on the users:
          UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        36. Re-slave any slaves of this machine, if needed.

        37. Turn back on Nagios, making sure all the checks are green first.

        38. Run a checksum on the master to propagate to this slave, and double-check data integrity on the slave. Note that you will want to use --ignore-columns with the output of this command in the checksum, to avoid false positives from scientific notation change (see https://blog.mozilla.org/it/2013/01/17/mysql-5-1-vs-mysql-5-5-floats-doubles-and-scientific-notation/)

        39. Find FLOAT/DOUBLE fields to ignore in checksum: SELECT GROUP_CONCAT(DISTINCT COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE IN ('float','double') AND TABLE_SCHEMA NOT IN ('mysql','information_schema','performance_schema');
        40. Put the machine back into the load balancer, if applicable.

        41. Inform folks the upgrade is over

        On the first upgrade, we did what is usually recommended - do a logical export with mysqldump, and then an import. With other upgrades in the same replication hierarchy, we can take advantage of Xtrabackup to stream the new version directly to the machine to be upgraded.

        The general procedure here is similar to the above, except that a logical export is not taken. After preparation steps are taken, a new empty MariaDB 5.5 server is installed. Then we use xtrabackup to backup and restore the existing MariaDB 5.5 server to the machine we are upgrading.

        For subsequent slaves, and the master

        1. Coordinate with affected parties ahead of time

        2. Send out any notices for downtime

        3. Take the machine out of any load balanced services, if appropriate. If the machine is a master, this means failing over the master first, so that this machine becomes a regular slave. [we have a different checklist for how to failover]

        4. Set appropriate downtimes in Nagios, including for any slaves

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed.

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.
          1. If this machine is a slave, ensure that the master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe

        8. Save a list of grants from pt-show-grants, just in case there are users/permissions that need to be preserved.
        9. [this is done because sometimes masters and slaves have different users, though we try to keep everything consistent]
        10. Figure out how big the backup will be by doing a du -sh on the datadir of the already-upgraded machine to be backed up, and make sure the new machine has enough space to keep the old version and have the new version as well.

        11. Stop MySQL on the machine to be upgraded.

        12. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        13. Do a rpm -qa | egrep -i "mysql|percona". Do a yum remove for the mysql packages (at least mysql-server, mysql). It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later.

        14. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression. If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        15. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″, running puppet manually. Verify with rpm -qa | egrep -i "percona|mysql|maria"

        16. Run mysql_install_db

        17. Make any changes to /etc/my.cnf (or run puppet). When going from MySQL 5.1 to 5.5, there are no particular changes.

        18. chown -R mysql:mysql /var/lib/mysql/

        19. chmod 775 /var/lib/mysql

        20. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is started.

        21. Stop MySQL, and move or delete the datadir that was created on upgrade.

        22. If you are directly streaming the backup to the machine to be upgraded, do this on the machine to be upgraded:
          cd $DATADIR
          nc -l 9999 | tar xfi -

        23. On the machine to be backed up (that is already upgraded), in a screen session, making sure you get any slave info:
          time innobackupex --slave-info --stream=tar $DATADIR | nc (IP/hostname) 9999

        24. Once xtrabackup is complete, fix permissions on the datadir:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        25. Prepare the backup:
          time innobackupex --apply-logs --target-dir=/var/lib/mysql

        26. Fix permissions on the datadir again:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        27. Restart MySQL and look for errors

        28. Test.

        29. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        30. Re-slave any slaves of this machine, if needed.

        31. Turn back on Nagios, making sure all checks are green first.

        32. Put the machine back into the load balancer, if applicable.

        33. Inform folks the upgrade is over

        It’s long and detailed, but not particularly difficult.

        At the beginning of 2013, ophthalmologist Percona’s patched MySQL 5.5 and MariaDB 5.5. MySQL 5.1 was released in November 2008 – so at the beginning of the year, pharm we still had databases with no new major features in 4 years. Currently we have almost all our databases at Oracle’s MySQL 5.6 – the only stragglers are our cluster running TokuDB and a few machines that are no longer in use. Here’s a graph showing the state of our machines – you can see that in the first half of the year we concentrated on upgrading our 5.0 and 5.1 servers to 5.5, and then in the second half of the year we upgraded everything to MySQL 5.6 (click on the image to get a larger version):

        MySQL Versions in 2013

        After running some tests, we determined that MariaDB 5.5 was the best option for us and our particular workload. For most of our servers, it did not matter whether we use Percona, MariaDB or Oracle’s MySQL, but our Bugzilla servers really benefited from MariaDB’s better subquery optimization, so we went with that. We had set up some Percona 5.5 servers over the spring/summer of 2012, when we moved some of our infrastructure to a new data center.

        We upgraded to MySQL 5.5 to be on a recent version of MySQL. In the middle of the year, we had a choice – should we stay where we were, or should we upgrade? We had no particular directive from developers to upgrade for the new MySQL 5.6 features. However, we have been doing more and more digging into our systems, and we really wanted the performance_schema features so we could dig even more. We want to be able to parse queries in real-time, perhaps with Anemometer without having to take an offline log file and run pt-query-digest on it.

        So, we chose to upgrade to MySQL 5.6. Unfortunately, there were no other GA products to test against – by mid-2013, neither MariaDB nor Percona had a GA 5.6 product, so our bake-off was functional only, not performance-related. Oracle’s MySQL 5.6 passed with flying colors, and so we proceeded to upgrade.

        Now, we have a recent and consistent version of MySQL installed, that we can work with to gain insights into our systems. A pretty great goal to have been met for 2013!

        Recently I had an interesting issue crop up. Due to an unfortunate migration incident in which involved master/master replication and not checking to see if replication was caught up, surgery buy we ended up with an infinite replication loop of a number of SQL statements. awk helped immensely in the aftermath cleanup.

        The basics of the replication infinite loop were (more…)

        In my last post, illness a tale of two MySQL upgrades, visit a few folks asked if I would outline the process we used to upgrade, and what kind of downtime we had.

        Well, the processes were different for each upgrade, so I will tackle them in separate blog posts. The first step was to upgrade all our MySQL 5.1 machines to MariaDB 5.5. As mentioned in the previous post, MariaDB’s superior performance for subqueries is why we switched – and we switched back to MySQL for 5.6 to take full advantage of the performance_schema.

        It is not difficult to blog about our procedure, as we have documentation on each process. My first tip would be to do that in your own environment. This also enables other folks to help, even if they are sysadmins and not normally DBAs. You may notice the steps contain items that might be “obvious” to someone who has done maintenance before – we try to write them detailed enough that if you were doing it at 3 am and a bit sleep-deprived, you could follow the checklist and not miss anything. This also helps junior and aspiring DBAs not miss any steps as well.

        The major difference between MySQL 5.1 and MySQL 5.5 (and its forks, like MariaDB) is that FLOAT columns are handled differently. On MySQL 5.1, a float value could be in scientific notation (e.g. 9.58084e-05) and in 5.5, it’s not (e.g. 0.0000958084). This makes checksumming difficult, as all FLOAT values will show differences even when they are the same number. There is a workaround for this, devised by Shlomi Noach.

        We have an n+1 architecture for databases at Mozilla – this means that we have an extra server. If we need 1 master and 3 slaves, then n+1 is 1 master and 4 slaves. Because of this, there are 2 different ways we upgrade – the first slave we upgrade, and subsequent slaves/masters.

        These steps are copied and pasted from our notes, with minor changes (for example, item #2 is “send out maintenance notices” but in our document we have the e-mail addresses to send to).

        Assumptions: Throughout these notes we use ‘/var/lib/mysql’, as that is our standard place for MySQL. You may need to change this to suit your environment. We are also using Red Hat Enterprise Linux for our operating system, so this procedure is tailored to it (e.g. “yum install/yum remove”). We control packages using the freely available puppet mysql module we created.

        For the first slave
        The overall procedure is to perform a logical backup the database, create a new empty installation of the new server version, and import the backup. Replication does work from MySQL 5.1 to MariaDB 5.5 and back (at least, on the 25 or so clusters we have, replication worked in both directions. Your mileage may vary).

        1. Make sure the slave has the same data as the master with checksums (the previous checksum is fine, they should be running every 12 hours).
        2. Send out maintenance notices.

        3. Take the machine out of any load balanced services, if appropriate

        4. Set appropriate downtimes in Nagios

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed. [we have a different checklist for this]

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.

          1. If this machine is a slave, ensure that its master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe [or the slave_master_info table if using that]

        8. Stop access to the machine from anyone other than root (assuming you are connecting from root):

        9. UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        10. See what the default character set is for the server and databases:
          SHOW VARIABLES LIKE 'character_set_server'; SHOW VARIABLES LIKE 'character_set_database';
          SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE DEFAULT_CHARACTER_SET_NAME!='utf8' AND SCHEMA_NAME NOT IN ('mysql');

          If applicable, change the server defaults to UTF8 and change databases to utf8 with ALTER DATABASE dbname DEFAULT CHARACTER SET utf8;

        11. Stop access to the machine from anyone other than root (assuming you are connecting from root): UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;

        12. Check to see how big the data is:
          mysql> SELECT SUM(DATA_LENGTH)/1024/1024/1024 AS sizeGb FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA!='information_schema';

        13. Determine how you can export the data, given the size. You may be able to export without compression, or you may need to do a mysqldump | gzip -c > file.sql, then compress the old data files instead of just moving them aside.

        14. Do a du -sh * of the datadir and save for later, if you want to compare the size of the database to see how much space is returned after defragmenting

        15. Export the data from all databases, preserving character set, routines and triggers. Record the time for documentation’s sake. I’m assuming the character set from step 9 is utf8 (if it’s something like latin1, you’ll need to put in –default-character-set=latin1 in the command). If the machine has slaves, make sure to use –master-data=1. If you need to compress, change the shell command accordingly:
          time mysqldump --all-databases --routines --triggers --events > `date +%Y-%m-%d`_backup.sql
        16. Stop MySQL

        17. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        18. Do a rpm -qa | egrep -i "percona|mysql". Do a yum remove for the mysql/percona packages. It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later. Sample:
          yum remove Percona-Server-client Percona-Server-shared-compat Percona-XtraDB-Cluster-devel Percona-Server-server
        19. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression (if you need to compress, to decompress the sql file). If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        20. Decompress the sql file, if applicable.

        21. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″. Verify with rpm -qa | egrep -i “percona|mysql|maria”
        22. [this may be different in your environment; we use the freely available puppet mysql module we created.
        23. Run mysql_install_db

        24. Make any changes to /etc/my.cnf (e.g. run puppet). When going from MySQL 5.1 to 5.5, there are no particular global changes Mozilla made.
        25. - when we went from MySQL 5.0 to MySQL 5.1, we did a global change to reflect the new slow query log options.
        26. chown -R mysql:mysql /var/lib/mysql/

        27. chmod 775 /var/lib/mysql

        28. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is running.

        29. Turn off binary logging. Import the export, timing how long it takes, for reference:

        30. time mysql < YYYY_MM_DD_backup.sql
        31. Restart MySQL and look for errors, you may need to run mysql_upgrade.

        32. Turn on binary logging, if applicable.

        33. Test.

        34. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        35. Reinstate permissions on the users:
          UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        36. Re-slave any slaves of this machine, if needed.

        37. Turn back on Nagios, making sure all the checks are green first.

        38. Run a checksum on the master to propagate to this slave, and double-check data integrity on the slave. Note that you will want to use --ignore-columns with the output of this command in the checksum, to avoid false positives from scientific notation change (see https://blog.mozilla.org/it/2013/01/17/mysql-5-1-vs-mysql-5-5-floats-doubles-and-scientific-notation/)

        39. Find FLOAT/DOUBLE fields to ignore in checksum: SELECT GROUP_CONCAT(DISTINCT COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE IN ('float','double') AND TABLE_SCHEMA NOT IN ('mysql','information_schema','performance_schema');
        40. Put the machine back into the load balancer, if applicable.

        41. Inform folks the upgrade is over

        On the first upgrade, we did what is usually recommended - do a logical export with mysqldump, and then an import. With other upgrades in the same replication hierarchy, we can take advantage of Xtrabackup to stream the new version directly to the machine to be upgraded.

        The general procedure here is similar to the above, except that a logical export is not taken. After preparation steps are taken, a new empty MariaDB 5.5 server is installed. Then we use xtrabackup to backup and restore the existing MariaDB 5.5 server to the machine we are upgrading.

        For subsequent slaves, and the master

        1. Coordinate with affected parties ahead of time

        2. Send out any notices for downtime

        3. Take the machine out of any load balanced services, if appropriate. If the machine is a master, this means failing over the master first, so that this machine becomes a regular slave. [we have a different checklist for how to failover]

        4. Set appropriate downtimes in Nagios, including for any slaves

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed.

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.
          1. If this machine is a slave, ensure that the master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe

        8. Save a list of grants from pt-show-grants, just in case there are users/permissions that need to be preserved.
        9. [this is done because sometimes masters and slaves have different users, though we try to keep everything consistent]
        10. Figure out how big the backup will be by doing a du -sh on the datadir of the already-upgraded machine to be backed up, and make sure the new machine has enough space to keep the old version and have the new version as well.

        11. Stop MySQL on the machine to be upgraded.

        12. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        13. Do a rpm -qa | egrep -i "mysql|percona". Do a yum remove for the mysql packages (at least mysql-server, mysql). It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later.

        14. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression. If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        15. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″, running puppet manually. Verify with rpm -qa | egrep -i "percona|mysql|maria"

        16. Run mysql_install_db

        17. Make any changes to /etc/my.cnf (or run puppet). When going from MySQL 5.1 to 5.5, there are no particular changes.

        18. chown -R mysql:mysql /var/lib/mysql/

        19. chmod 775 /var/lib/mysql

        20. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is started.

        21. Stop MySQL, and move or delete the datadir that was created on upgrade.

        22. If you are directly streaming the backup to the machine to be upgraded, do this on the machine to be upgraded:
          cd $DATADIR
          nc -l 9999 | tar xfi -

        23. On the machine to be backed up (that is already upgraded), in a screen session, making sure you get any slave info:
          time innobackupex --slave-info --stream=tar $DATADIR | nc (IP/hostname) 9999

        24. Once xtrabackup is complete, fix permissions on the datadir:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        25. Prepare the backup:
          time innobackupex --apply-logs --target-dir=/var/lib/mysql

        26. Fix permissions on the datadir again:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        27. Restart MySQL and look for errors

        28. Test.

        29. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        30. Re-slave any slaves of this machine, if needed.

        31. Turn back on Nagios, making sure all checks are green first.

        32. Put the machine back into the load balancer, if applicable.

        33. Inform folks the upgrade is over

        It’s long and detailed, but not particularly difficult.

        At the beginning of 2013, ophthalmologist Percona’s patched MySQL 5.5 and MariaDB 5.5. MySQL 5.1 was released in November 2008 – so at the beginning of the year, pharm we still had databases with no new major features in 4 years. Currently we have almost all our databases at Oracle’s MySQL 5.6 – the only stragglers are our cluster running TokuDB and a few machines that are no longer in use. Here’s a graph showing the state of our machines – you can see that in the first half of the year we concentrated on upgrading our 5.0 and 5.1 servers to 5.5, and then in the second half of the year we upgraded everything to MySQL 5.6 (click on the image to get a larger version):

        MySQL Versions in 2013

        After running some tests, we determined that MariaDB 5.5 was the best option for us and our particular workload. For most of our servers, it did not matter whether we use Percona, MariaDB or Oracle’s MySQL, but our Bugzilla servers really benefited from MariaDB’s better subquery optimization, so we went with that. We had set up some Percona 5.5 servers over the spring/summer of 2012, when we moved some of our infrastructure to a new data center.

        We upgraded to MySQL 5.5 to be on a recent version of MySQL. In the middle of the year, we had a choice – should we stay where we were, or should we upgrade? We had no particular directive from developers to upgrade for the new MySQL 5.6 features. However, we have been doing more and more digging into our systems, and we really wanted the performance_schema features so we could dig even more. We want to be able to parse queries in real-time, perhaps with Anemometer without having to take an offline log file and run pt-query-digest on it.

        So, we chose to upgrade to MySQL 5.6. Unfortunately, there were no other GA products to test against – by mid-2013, neither MariaDB nor Percona had a GA 5.6 product, so our bake-off was functional only, not performance-related. Oracle’s MySQL 5.6 passed with flying colors, and so we proceeded to upgrade.

        Now, we have a recent and consistent version of MySQL installed, that we can work with to gain insights into our systems. A pretty great goal to have been met for 2013!

        At the beginning of 2013, this Mozilla’s MySQL databases were a mix of MySQL 5.0, viagra 100mg Percona’s patched MySQL 5.1, Percona’s patched MySQL 5.5 and MariaDB 5.5. MySQL 5.1 was released in November 2008 – so at the beginning of the year, we still had databases with no new major features in 4 years. Currently we have almost all our databases at Oracle’s MySQL 5.6 – the only stragglers are our cluster running TokuDB and a few machines that are no longer in use. Here’s a graph showing the state of our machines – you can see that in the first half of the year we concentrated on upgrading our 5.0 and 5.1 servers to 5.5, and then in the second half of the year we upgraded everything to MySQL 5.6 (click on the image to get a larger version):

        MySQL Versions in 2013

        After running some tests, we determined that MariaDB 5.5 was the best option for us and our particular workload. For most of our servers, it did not matter whether we use Percona, MariaDB or Oracle’s MySQL, but our Bugzilla servers really benefited from MariaDB’s better subquery optimization, so we went with that. We had set up some Percona 5.5 servers over the spring/summer of 2012, when we moved some of our infrastructure to a new data center.

        We upgraded to MySQL 5.5 to be on a recent version of MySQL. In the middle of the year, we had a choice – should we stay where we were, or should we upgrade? We had no particular directive from developers to upgrade for the new MySQL 5.6 features. However, we have been doing more and more digging into our systems, and we really wanted the performance_schema features so we could dig even more. We want to be able to parse queries in real-time, perhaps with Anemometer without having to take an offline log file and run pt-query-digest on it.

        So, we chose to upgrade to MySQL 5.6. Unfortunately, there were no other GA products to test against – by mid-2013, neither MariaDB nor Percona had a GA 5.6 product, so our bake-off was functional only, not performance-related. Oracle’s MySQL 5.6 passed with flying colors, and so we proceeded to upgrade.

        Now, we have a recent and consistent version of MySQL installed, that we can work with to gain insights into our systems. A pretty great goal to have been met for 2013!

MySQL Workbench “Clean up SQL” Feature

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

We have been experiencing intermittent Bugzilla slowness since Wednesday, allergy June 12th 2013 at 5 pm UTC (10 am US/Pacific time). We have been working throughout the weekend to pinpoint the cause of this irregular, and but noticeable, issue. The problem is performance only, there have been no reports and no evidence of data or functionality loss. We will release additional information as we have it.

Update 18 Jun 2013 18:40 pm UTC: The Phoenix chassis outage was completely unrelated to this Bugzilla slowness. Bugzilla is in a different data center and neither caused nor affected the chassis problem, and the only effect the chassis problem had was to pull resources away from figuring out and fixing the bugzilla issue.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

We have been experiencing intermittent Bugzilla slowness since Wednesday, allergy June 12th 2013 at 5 pm UTC (10 am US/Pacific time). We have been working throughout the weekend to pinpoint the cause of this irregular, and but noticeable, issue. The problem is performance only, there have been no reports and no evidence of data or functionality loss. We will release additional information as we have it.

Update 18 Jun 2013 18:40 pm UTC: The Phoenix chassis outage was completely unrelated to this Bugzilla slowness. Bugzilla is in a different data center and neither caused nor affected the chassis problem, and the only effect the chassis problem had was to pull resources away from figuring out and fixing the bugzilla issue.

Back in November, order talking about a different type of max_allowed_packet problem.

See, view an application had put data into the database, pfizer but could not retrieve it without getting max_allowed_packet. With the help of some really smart community folks (named Jesper Hansen, Brandon Johnson and Shane Bester), we determined that MySQL actually has 2 different max_allowed_packet settings: client and server.

When you change the max_allowed_packet variable, you are changing the server variable if it is in [mysqld] and the client variable if it is in [client] or [mysql] or whatever client you have. As far as we can tell, there’s no way to actually view what the client variable is, as looking at both the session and global max_allowed_packet variable shows you the server variable.

If max_allowed_packet is not set by the client, it defaults to 16M. The proposed solution is to allow it to be increased for non-interactive clients, and the bug has been verified as a “feature request”, though it has not been implemented yet.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

We have been experiencing intermittent Bugzilla slowness since Wednesday, allergy June 12th 2013 at 5 pm UTC (10 am US/Pacific time). We have been working throughout the weekend to pinpoint the cause of this irregular, and but noticeable, issue. The problem is performance only, there have been no reports and no evidence of data or functionality loss. We will release additional information as we have it.

Update 18 Jun 2013 18:40 pm UTC: The Phoenix chassis outage was completely unrelated to this Bugzilla slowness. Bugzilla is in a different data center and neither caused nor affected the chassis problem, and the only effect the chassis problem had was to pull resources away from figuring out and fixing the bugzilla issue.

Back in November, order talking about a different type of max_allowed_packet problem.

See, view an application had put data into the database, pfizer but could not retrieve it without getting max_allowed_packet. With the help of some really smart community folks (named Jesper Hansen, Brandon Johnson and Shane Bester), we determined that MySQL actually has 2 different max_allowed_packet settings: client and server.

When you change the max_allowed_packet variable, you are changing the server variable if it is in [mysqld] and the client variable if it is in [client] or [mysql] or whatever client you have. As far as we can tell, there’s no way to actually view what the client variable is, as looking at both the session and global max_allowed_packet variable shows you the server variable.

If max_allowed_packet is not set by the client, it defaults to 16M. The proposed solution is to allow it to be increased for non-interactive clients, and the bug has been verified as a “feature request”, though it has not been implemented yet.

I was playing around with MySQL Workbench earlier in the week, site so they are more readable.

Here is a typical complex query that looks pretty good formatted in the results from a performance schema query:
query from performance schema

Simply click the “broom” icon and watch as your SQL is cleaned up, doctor with one field in the SELECT per line and the JOINs indented and formatted prettily:
nicer, cleaned up SQL

Pretty cool, for just the click of a button!

Learn MySQL for Free with MySQL Marinate, Season 3!

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

MySQL Puppet Module and Slides

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Well, mind , who revealed something very interesting and riveting.

From there, Giuseppe gave a short talk on what it’s like to work at MySQL, and then we moved on to the topic of the user group meeting, “What is MySQL Cluster Good For?”

The slides for the talk are downloadable in PDF Format 61kB and Flash (SWF) format, 31kB

The video can be played at http://technocation.org/node/572/play and downloaded (404 Mb) at http://technocation.org/node/572/download.

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Well, mind , who revealed something very interesting and riveting.

From there, Giuseppe gave a short talk on what it’s like to work at MySQL, and then we moved on to the topic of the user group meeting, “What is MySQL Cluster Good For?”

The slides for the talk are downloadable in PDF Format 61kB and Flash (SWF) format, 31kB

The video can be played at http://technocation.org/node/572/play and downloaded (404 Mb) at http://technocation.org/node/572/download.

The last keynote of Tuesday evening at OSCon 2008 was entitled “Temporarily Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…..Made Easy!”

Damian Conway is a speaker that should not be missed. He spends his time hacking perl to do fascinating and obscure feats of technology such as time travel. This video is just over an hour of rolling laughter that will entertain you into realizing what a genius Damian Conway is.

Now, side effects so if folks could pass the links to the video along to other communities, viagra buy that would be great.

(This video is at 1.0 Mb/sec. Watch the video online at http://technocation.org/node/571/play or download it at http://technocation.org/node/571/download. Please do not download the file if you are on the conference network, these links are not time sensitive.)

Brian Aker gives the “zinger” lightning talk about the newly announced “Drizzle”. This short (under 8 minutes) video captures Aker’s highlights of why he started the Drizzle project and how Drizzle is different from MySQL — both in what has been removed from MySQL and what features Drizzle can accomodate.

Play the video directly in your browser at http://technocation.org/node/576/play or download the 116 Mb file at http://technocation.org/node/576/download.

Well, mind , who revealed something very interesting and riveting.

From there, Giuseppe gave a short talk on what it’s like to work at MySQL, and then we moved on to the topic of the user group meeting, “What is MySQL Cluster Good For?”

The slides for the talk are downloadable in PDF Format 61kB and Flash (SWF) format, 31kB

The video can be played at http://technocation.org/node/572/play and downloaded (404 Mb) at http://technocation.org/node/572/download.

The last keynote of Tuesday evening at OSCon 2008 was entitled “Temporarily Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…..Made Easy!”

Damian Conway is a speaker that should not be missed. He spends his time hacking perl to do fascinating and obscure feats of technology such as time travel. This video is just over an hour of rolling laughter that will entertain you into realizing what a genius Damian Conway is.

Now, side effects so if folks could pass the links to the video along to other communities, viagra buy that would be great.

(This video is at 1.0 Mb/sec. Watch the video online at http://technocation.org/node/571/play or download it at http://technocation.org/node/571/download. Please do not download the file if you are on the conference network, these links are not time sensitive.)

Liveblogging from OSCon 2008: Going Open Source, treatment The 20 Most Important Things to Do – by Martin Aschoff of AGNITAS AS.

Firstly I have to extend a heartfelt “thank you” to Sun Microsystems and Monty Widenius, as I would not have been able to attend OSCon without their assistance.

AGNITAS AS makes e-marketing software, 25 employees, no venture capital, from Munich, Germany. The municipality of Munich runs entirely on Linux desktops and on infrastructures with open source software.

This session is about the nuts and bolts of an open source company. Aschoff kept a journal of the key learnings of the company when it went open source, and has become a board member of the Open Source Business Association in Europe.

Before deciding on going open source:
(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

(more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

(more…)

I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

Yesterday I had a good conversation with

My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

That’s not the case at all.
(more…)

This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

But wait! There are some more updates!

(more…)

As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

(more…)

I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

In two words: online operations. In a paragraph: Forget partitioning, dosage are the online operations:

  • online ALTER TABLE for column rename, human enhancement column default value change, purchase and adding values to the end of an ENUM/SET
  • Online, table-based logging. No more need to restart your server to enable or change the general or slow query logs. You can have the standard file-based output or choose a table format…which you can query.
  • (more…)

    Yesterday I had a good conversation with

    My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

    That’s not the case at all.
    (more…)

    This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

    Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

    Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

    The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

    Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

    Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

    But wait! There are some more updates!

    (more…)

    As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

    The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

    (more…)

    I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

    My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

    In two words: online operations. In a paragraph: Forget partitioning, dosage are the online operations:

    • online ALTER TABLE for column rename, human enhancement column default value change, purchase and adding values to the end of an ENUM/SET
    • Online, table-based logging. No more need to restart your server to enable or change the general or slow query logs. You can have the standard file-based output or choose a table format…which you can query.
    • (more…)

      My parents instilled upon me many values that I keep with me today. My twin brother and I are the youngest of four children, nurse screeching “Mine! Mine!”

      My father’s response to this was to look at us and say “These toys are mine; I bought those toys with money I worked for. What’s yours is what you make with your bodies.” While the sentiment is arguably harsh, weight loss crude and bordering on vulgar, I cannot argue that he had a certain point.

      If you do not truly own something, you will be left squabbling like a child when your perceived ownership is threatened. When you assumed you owned something and the truth comes to light, you will be massively insecure and have a sense of injustice.

      A few points from OSCon are haunting me and getting me to think about what FLOSS means to me, and what I want from it.

      — Open source is important even if you never read one line of source code or make one modification. The fact that anyone can read and write the source code is critical even if nobody besides the original engineer(s) ever does.

      (more…)

      Yesterday I had a good conversation with

      My impression, diet thumb which was wrong, physiotherapist was that it was difficult getting critical mass to download 5.1 and use it simply because it was not a GA release yet. I thought the paradox of needing to have a certain amount of usage before release was the barrier.

      That’s not the case at all.
      (more…)

      This week, dentist database blogs seemed to talk about conforming to stereotypes as well as breaking them.

      Fulfilling the stereotype of Microsoft software being unsecure, advice Microsoft released a very important SQL Server update that Aaron Bertrand notes patches “four elevation of privilege vulnerabilities.” That’s right, not one, not two, but four!!! At least there is a patch now……go forth and patch! Usually it is MySQL that throws ambiguous warnings or errors which are not an accurate representation of the actual error, but Bertrand also notes that there is A Little Management Studio Oops.

      Contrary to stereotype, Microsoft is giving away content with NO DRM! Kalen Delaney asks, Did You Know the History of SQL Server? and shares a link to a chapter from a book on SQL Server 2000 in the Inside SQL Server series.

      The PSS SQL Escalation Services team has fought many times about SQL Server I/O Bottleneck, I don’t have one, YES YOU DO! The team gives some reminders about how to interpet averages properly.

      Allen White asks about Tools for the Reluctant DBA — that is, a programmer or administrator so good at databases that they were promoted to DBA, but may not actually want the job. Check out the comments and add your own.

      Tibor Karaszi shares his stored procedure to find physical index details. Now you can use one stored procedure does what a stored procedure plus 3-4 tables ordinarily does.

      But wait! There are some more updates!

      (more…)

      As part of a project of and about 2 weeks ago I’d finished processing and uploading all the videos, help but it was only today where I had the 5-6 hours I needed to finish posting all the video, and making this matrix of video.

      The video may not be the quality that the O’Reilly folks took and put up on blip tv’s OSCon site, but all the videos here are freely downloadable or playable in your browser.

      (more…)

      I have not said much about supports several database systems, symptoms it is very likely that we will support Drizzle as well. Particularly since there is in-house Drizzle expertise already. But I digress; my point is that it is premature to really say much about Drizzle.

      My involvement in Drizzle goes back to around the end of April/beginning of May 2008. Given my early involvement, (more…)

      In two words: online operations. In a paragraph: Forget partitioning, dosage are the online operations:

      • online ALTER TABLE for column rename, human enhancement column default value change, purchase and adding values to the end of an ENUM/SET
      • Online, table-based logging. No more need to restart your server to enable or change the general or slow query logs. You can have the standard file-based output or choose a table format…which you can query.
      • (more…)

        My parents instilled upon me many values that I keep with me today. My twin brother and I are the youngest of four children, nurse screeching “Mine! Mine!”

        My father’s response to this was to look at us and say “These toys are mine; I bought those toys with money I worked for. What’s yours is what you make with your bodies.” While the sentiment is arguably harsh, weight loss crude and bordering on vulgar, I cannot argue that he had a certain point.

        If you do not truly own something, you will be left squabbling like a child when your perceived ownership is threatened. When you assumed you owned something and the truth comes to light, you will be massively insecure and have a sense of injustice.

        A few points from OSCon are haunting me and getting me to think about what FLOSS means to me, and what I want from it.

        — Open source is important even if you never read one line of source code or make one modification. The fact that anyone can read and write the source code is critical even if nobody besides the original engineer(s) ever does.

        (more…)

        ValleyWag reports that MySQL’s Monty Widenius is no longer “MySQL’s”. Some folks have known that Monty has not been happy in his current position; this leads me to believe the rumor is true (though of course an official announcement is the only confirmation).

        So what does this mean for MySQL? Well, patient honestly, viagra 40mg if a product falls apart because one out of 300 employees leaves, it was probably doomed anyway. There are plenty of capable employees left, and being owned by Sun means that there are many more resources they can tap as well.

        What will the official company announcement be? My prediction is (more…)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        Though the event is still happening in Charlottesville, click , price and a captcha has been put in place that is activated on any page change that adds an external URL.

        Whether you are into MySQL, drugstore PostgreSQL, Drizzle, or some other open source SQL database, go forth and register for OpenSQL Camp, without having to login! (Disclosure: if you do not create a login, your IP is tracked.)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        Though the event is still happening in Charlottesville, click , price and a captcha has been put in place that is activated on any page change that adds an external URL.

        Whether you are into MySQL, drugstore PostgreSQL, Drizzle, or some other open source SQL database, go forth and register for OpenSQL Camp, without having to login! (Disclosure: if you do not create a login, your IP is tracked.)

        As I putter around the MySQL INFORMATION_SCHEMA, order I am finding lots of undocumented behavior for fields that should be straightforward. For example, read the VIEWS table holds information about views, and the VIEW_DEFINITION field contains the view definition, right?

        Well, when I was looking at the VIEW_DEFINITION today, I noticed an odd thing. Even though I had permissions to see the view definition (as proven by the SHOW CREATE VIEW command), the INFORMATION_SCHEMA.VIEWS table sometimes came up blank for the VIEW_DEFINITION. I had to figure out why, and now that I know, I’m not sure if it’s a bug or a feature…..can you figure it out?

        mysql> USE INFORMATION_SCHEMA;
        Database changed
        mysql> SELECT TABLE_NAME,VIEW_DEFINITION FROM VIEWS WHERE TABLE_SCHEMA='sakila';
        
        +----------------------------+-----------------+
        | TABLE_NAME                 | VIEW_DEFINITION |
        +----------------------------+-----------------+
        | actor_info                 |                 |
        | customer_list              |                 |
        | film_list                  |                 |
        | nicer_but_slower_film_list |                 |
        | sales_by_film_category     |                 |
        | sales_by_store             |                 |
        | staff_list                 |                 |
        +----------------------------+-----------------+
        7 rows in set (0.16 sec)
        
        mysql> SHOW CREATE VIEW sakila.actor_infoG
        *************************** 1. row ***************************
        View: actor_info
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY INVOKER VIEW `sakila`.`actor_info` AS select `a`.`actor_id` AS `actor_i
        d`,`a`.`first_name` AS `first_name`,`a`.`last_name` AS `last_name`,group_concat(
        distinct concat(`c`.`name`,': ',(select group_concat(`f`.`title` order by `f`.`t
        itle` ASC separator ', ') AS `GROUP_CONCAT(f.title ORDER BY f.title SEPARATOR ',
        ')` from ((`sakila`.`film` `f` join `sakila`.`film_category` `fc` on((`f`.`film
        _id` = `fc`.`film_id`))) join `sakila`.`film_actor` `fa` on((`f`.`film_id` = `fa
        `.`film_id`))) where ((`fc`.`category_id` = `c`.`category_id`) and (`fa`.`actor_
        id` = `a`.`actor_id`)))) order by `c`.`name` ASC separator '; ') AS `film_info`
        from (((`sakila`.`actor` `a` left join `sakila`.`film_actor` `fa` on((`a`.`actor
        _id` = `fa`.`actor_id`))) left join `sakila`.`film_category` `fc` on((`fa`.`film
        _id` = `fc`.`film_id`))) left join `sakila`.`category` `c` on((`fc`.`category_id
        ` = `c`.`category_id`))) group by `a`.`actor_id`,`a`.`first_name`,`a`.`last_name
        `
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.02 sec)
        
        mysql> SHOW CREATE VIEW sakila.customer_listG
        *************************** 1. row ***************************
        View: customer_list
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY DEFINER VIEW `sakila`.`customer_list` AS select `cu`.`customer_id` AS `
        ID`,concat(`cu`.`first_name`,_utf8' ',`cu`.`last_name`) AS `name`,`a`.`address`
        AS `address`,`a`.`postal_code` AS `zip code`,`a`.`phone` AS `phone`,`sakila`.`ci
        ty`.`city` AS `city`,`sakila`.`country`.`country` AS `country`,if(`cu`.`active`,
        _utf8'active',_utf8'') AS `notes`,`cu`.`store_id` AS `SID` from (((`sakila`.`cus
        tomer` `cu` join `sakila`.`address` `a` on((`cu`.`address_id` = `a`.`address_id`
        ))) join `sakila`.`city` on((`a`.`city_id` = `sakila`.`city`.`city_id`))) join `
        sakila`.`country` on((`sakila`.`city`.`country_id` = `sakila`.`country`.`country
        _id`)))
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.00 sec)
        
        mysql>
        

        (some people read the dictionary, I read the data dictionary!)

        I confess — I have not always been an exclusive MySQL user. I have fooled around with other DBMSs. I was young, cialis 40mg phimosis inexperienced, viagra approved clinic and I needed the money, prosthesis I swear!

        This comes about because I was doing some electronic de-crufting….From a file last modified on 10:50 am on 2005-06-30:

        > more addcatalog.sh
        #!/bin/sh
        
        db2 catalog tcpip node $1 remote $2 server 50000
        db2 terminate
        db2 catalog database sample as $2 at node $1
        db2 terminate
        
        # [db2inst1@midgard db2inst1]$ db2sql92 -a db2inst3/password -d coworkername
        

        And from the same time-frame there’s also:

        (more…)

        Though the event is still happening in Charlottesville, click , price and a captcha has been put in place that is activated on any page change that adds an external URL.

        Whether you are into MySQL, drugstore PostgreSQL, Drizzle, or some other open source SQL database, go forth and register for OpenSQL Camp, without having to login! (Disclosure: if you do not create a login, your IP is tracked.)

        As I putter around the MySQL INFORMATION_SCHEMA, order I am finding lots of undocumented behavior for fields that should be straightforward. For example, read the VIEWS table holds information about views, and the VIEW_DEFINITION field contains the view definition, right?

        Well, when I was looking at the VIEW_DEFINITION today, I noticed an odd thing. Even though I had permissions to see the view definition (as proven by the SHOW CREATE VIEW command), the INFORMATION_SCHEMA.VIEWS table sometimes came up blank for the VIEW_DEFINITION. I had to figure out why, and now that I know, I’m not sure if it’s a bug or a feature…..can you figure it out?

        mysql> USE INFORMATION_SCHEMA;
        Database changed
        mysql> SELECT TABLE_NAME,VIEW_DEFINITION FROM VIEWS WHERE TABLE_SCHEMA='sakila';
        
        +----------------------------+-----------------+
        | TABLE_NAME                 | VIEW_DEFINITION |
        +----------------------------+-----------------+
        | actor_info                 |                 |
        | customer_list              |                 |
        | film_list                  |                 |
        | nicer_but_slower_film_list |                 |
        | sales_by_film_category     |                 |
        | sales_by_store             |                 |
        | staff_list                 |                 |
        +----------------------------+-----------------+
        7 rows in set (0.16 sec)
        
        mysql> SHOW CREATE VIEW sakila.actor_infoG
        *************************** 1. row ***************************
        View: actor_info
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY INVOKER VIEW `sakila`.`actor_info` AS select `a`.`actor_id` AS `actor_i
        d`,`a`.`first_name` AS `first_name`,`a`.`last_name` AS `last_name`,group_concat(
        distinct concat(`c`.`name`,': ',(select group_concat(`f`.`title` order by `f`.`t
        itle` ASC separator ', ') AS `GROUP_CONCAT(f.title ORDER BY f.title SEPARATOR ',
        ')` from ((`sakila`.`film` `f` join `sakila`.`film_category` `fc` on((`f`.`film
        _id` = `fc`.`film_id`))) join `sakila`.`film_actor` `fa` on((`f`.`film_id` = `fa
        `.`film_id`))) where ((`fc`.`category_id` = `c`.`category_id`) and (`fa`.`actor_
        id` = `a`.`actor_id`)))) order by `c`.`name` ASC separator '; ') AS `film_info`
        from (((`sakila`.`actor` `a` left join `sakila`.`film_actor` `fa` on((`a`.`actor
        _id` = `fa`.`actor_id`))) left join `sakila`.`film_category` `fc` on((`fa`.`film
        _id` = `fc`.`film_id`))) left join `sakila`.`category` `c` on((`fc`.`category_id
        ` = `c`.`category_id`))) group by `a`.`actor_id`,`a`.`first_name`,`a`.`last_name
        `
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.02 sec)
        
        mysql> SHOW CREATE VIEW sakila.customer_listG
        *************************** 1. row ***************************
        View: customer_list
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
        SECURITY DEFINER VIEW `sakila`.`customer_list` AS select `cu`.`customer_id` AS `
        ID`,concat(`cu`.`first_name`,_utf8' ',`cu`.`last_name`) AS `name`,`a`.`address`
        AS `address`,`a`.`postal_code` AS `zip code`,`a`.`phone` AS `phone`,`sakila`.`ci
        ty`.`city` AS `city`,`sakila`.`country`.`country` AS `country`,if(`cu`.`active`,
        _utf8'active',_utf8'') AS `notes`,`cu`.`store_id` AS `SID` from (((`sakila`.`cus
        tomer` `cu` join `sakila`.`address` `a` on((`cu`.`address_id` = `a`.`address_id`
        ))) join `sakila`.`city` on((`a`.`city_id` = `sakila`.`city`.`city_id`))) join `
        sakila`.`country` on((`sakila`.`city`.`country_id` = `sakila`.`country`.`country
        _id`)))
        character_set_client: latin1
        collation_connection: latin1_swedish_ci
        1 row in set (0.00 sec)
        
        mysql>
        

        (some people read the dictionary, I read the data dictionary!)

        The unsung heroes of InnoDB are the logfiles. They are what makes InnoDB automatic crash recovery possible.

        Database administrators of other DBMS may be familiar with the concept of a “redo” log. When data is changed, life affected data pages are changed in the innodb_buffer_pool. Then, ailment the change is written to the redo log, stomatology which in MySQL is the InnoDB logfile (ib_logfile0 and ib_logfile1). The pages are marked as “dirty”, and eventually get flushed and written to disk.

        If MySQL crashes, there may be data that is changed that has not been written to disk. Those data pages were marked as “dirty” in the innodb_buffer_pool, but after a MySQL crash the innodb_buffer_pool no longer exists. However, they were written to the redo log. On crash recovery, MySQL can read the redo log (InnoDB log files) and apply any changes that were not written to disk.

        That is the basic functionality of the InnoDB log files. Given this, let’s look at some of the different parameters and their ramifications.

        innodb_log_files_in_group is set with a default of 2. The logfiles are written in a circular manner — ib_logfile0 is written first, and when it has reached its maximum size, then ib_logfile1 will be written to.

        innodb_log_file_size is the size of each log file in the log group. The total, combined size of all the log files has to be less than 4 Gb (according to the MySQL manual). Because the logfiles contain changes in the buffer pool that have not been written to disk, the total, combined size of all the log files should not be more than the innodb_buffer_pool_size.

        If all the log files in the group are full of changes that have not been written to disk, MySQL will start to flush dirty pages from the InnoDB buffer pool, writing the changes to disk. If the log files are small, changes will be written to disk more often, which can cause more disk I/O.

        When InnoDB does a crash recovery, it reads the log files. If the log files are large, it will take longer to recover from a crash. If innodb_fast_shutdown is set to 0, the log files are purged when MySQL shuts down — larger files mean a longer shutdown time. The default for innodb_fast_shutdown is 1, which means that the log files are not purged before a shutdown. Starting in MySQL 5.0.5, you can set it to 2, which simulates a crash, and at the next startup InnoDB will do a crash recovery.

        innodb_flush_log_at_trx_commit controls how often the log files are written to. A value of 0 causes the log files to be written and flushed to disk once per second. The default is 1, which causes the log buffer to be written and flushed to disk after every transaction commit. The value can also be set to 2, which causes the log buffer to be written after every transaction commit and flushes the log files to disk once per second. A value of 2 means that MySQL might think that some changes are written to the log file, but do not persist in the log file after an operating system crash, because the log file was not flushed to disk before a crash.

        Note that some filesystems are not honest about flushing to disk, so even though you may have the default value of 1, your system may be acting as if it has a value of 2. Setting this parameter to 2 means that there will be less I/O, at the cost of not being able to recover data from a crash.

        innodb_flush_method changes how InnoDB opens and flushes data and log files. See the manual for details; the end result is a tradeoff in I/O performance versus whether or not an operating system crash would leave the InnoDB log files in an inconsistent state.

        innodb_log_buffer_size is the write buffer for InnoDB log files. The larger the buffer is, the less often the log files are written to. This can save I/O.

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        Every so often we have a client worrying about unauthenticated users. For example, cardiology as part of the output of SHOW PROCESSLIST they will see:

        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | Id  | User                 | Host               | db   | Command | Time | State | Info             |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | 235 | unauthenticated user | 10.10.2.74:53216   | NULL | Connect | NULL | login | NULL             |
        | 236 | unauthenticated user | 10.120.61.10:51721 | NULL | Connect | NULL | login | NULL             |
        | 237 | user                 | localhost          | NULL | Query   | 0    | NULL  | show processlist |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        

        Who are these unauthenticated users, more about how do they get there, and why aren’t they authenticated?

        The client-server handshake in MySQL is a 4-step process. Those familiar with mysql-proxy already know these steps, as there are four functions that a Lua script in mysql-proxy can override. The process is useful to know for figuring out exactly where a problem is when something breaks.
        (more…)

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        Every so often we have a client worrying about unauthenticated users. For example, cardiology as part of the output of SHOW PROCESSLIST they will see:

        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | Id  | User                 | Host               | db   | Command | Time | State | Info             |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | 235 | unauthenticated user | 10.10.2.74:53216   | NULL | Connect | NULL | login | NULL             |
        | 236 | unauthenticated user | 10.120.61.10:51721 | NULL | Connect | NULL | login | NULL             |
        | 237 | user                 | localhost          | NULL | Query   | 0    | NULL  | show processlist |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        

        Who are these unauthenticated users, more about how do they get there, and why aren’t they authenticated?

        The client-server handshake in MySQL is a 4-step process. Those familiar with mysql-proxy already know these steps, as there are four functions that a Lua script in mysql-proxy can override. The process is useful to know for figuring out exactly where a problem is when something breaks.
        (more…)

        Get it while it’s hot! The Fall 2008 issue of the MySQL Magazine is now available at including:

        • “Decision Table”-Driven Development by Jonathan Levin
        • Part I of a series on Transaction Time Validity in MySQL by Peter Brawley
        • An Overview of Zmanda Recovery Manager by Pythian’s own Gerry Narvaja
        • Keith Murphy, pills editor has a note about Drizzle.

        Download the PDF directly or go to the MySQL Magazine page to download any and all of the 6 issues.

        This is a post about SYSDATE() and NOW() and CURRENT_TIMESTAMP() functions in MySQL.

        Firstly, page malady only CURRENT_TIMESTAMP() is part of the SQL Standard. NOW() happens to be an alias for CURRENT_TIMESTAMP() in MySQL.

        Secondly, prostate note that replication does not work well with non-deterministic functions. And “hey, for sale what time is it?” is non-deterministic. Ask it twice, with a second apart between asking, and both times you get different results (with at least second precision).

        You can start to see the problem here….but there’s more…. (more…)

        A while ago, dosage MySQL developed a Community Contribution Agreement for community contributions to the MySQL source code. While browsing the MySQL Forge Wiki I cam across:

        http://forge.mysql.com/wiki/Community_Contributions

        This page shows that the Community Contribution Agreement has changed — it is no longer the document MySQL AB created. It is now Sun Microsystem’s standard Sun Contributor Agreement, store which CEO Mårten Mickos recently explained to me was “more accepted than the agreement MySQL had come up with.”

        I am happy to see some of the great Sun practices trickle down to replace some issues that MySQL did not handle smoothly. All in all, I agree with Mårten Mickos and think the Sun Contributor Agreement is much better….

        ….but what do you think?

        Gavin Newsome, cialis 40mg mayor of San Francisco, and Ed Begley, Jr. talk about being green, and commend Oracle and Oracle OpenWorld for being green.

        Watch the video online or download the 19 Mb flash video file

        Watch the video online or download the 18 Mb flash video file

        (more…)

        To start off the conference, prosthetic says:

        Washington’s best-loved political couple Mary Matalin and James Carville entertain the crowd with a bitingly humorous look at the world of politics.

        Indeed, noun .

        (more…)

        Note: This article is about the WHERE extension to SHOW. I specifically use SHOW STATUS as an example, anorexia but WHERE is an extension to many SHOW statements.

        Often DBAs will assess the health of a system by looking at some of the status variables returned by SHOW GLOBAL STATUS (specifying GLOBAL is important; remember that SHOW STATUS is the same as SHOW SESSION STATUS).

        There are many status variables that SHOW GLOBAL STATUS returns. (SHOW GLOBAL STATUS on a Windows machine, 5.1.22 returned 256 and 6.0.6-alpha returned 295 status variables!). I have used the SHOW STATUS LIKE syntax to help give me the output I really want, particularly when I forget the exact names of the status variables I am looking for.

        But I did not know of a way to perform SHOW STATUS NOT LIKE or have any other means of filtering the information. Until today, when I was reading up on SHOW STATUS.
        (more…)

        Smithy commented on my blog post about the rumor of Monty leaving Sun with a pointer to an article on ComputerWorld Finland that mentions:

        Widenius told to Computerworld Finland on Friday that negotiations are still on.

        Meanwhile, website like this .

        Last week I speculated about the impact of Monty leaving Sun. In the end, more about if he does stay, it’s wonderful for Sun. If he leaves, he will no doubt go on to continue to be wonderful for the database community at large, much like Jim Starkey.

        But until Monty Says, nothing is official.

        I took part in a webinar on cloud computing today, there including some of the top names in cloud computing services. As Pythian has some MySQL clients using cloud computing, visit I was particularly interested…

        I was interested by the many levels of what cloud computing means, treat including such categorizations as Facebook apps being a part of the cloud. I think many of us consider cloud computing to mean “virtual infrastructure as a service” and overlook some pretty robust cloud computing that’s already out there, such as “application components as a service” and “software [platform] as a service”.

        Following are my notes:

        “Our objective today is to cut through some of the noise associated with ‘cloud’ and get to a real world approach for getting some serious value from the cloud.”
        (more…)

        Every so often we have a client worrying about unauthenticated users. For example, cardiology as part of the output of SHOW PROCESSLIST they will see:

        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | Id  | User                 | Host               | db   | Command | Time | State | Info             |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        | 235 | unauthenticated user | 10.10.2.74:53216   | NULL | Connect | NULL | login | NULL             |
        | 236 | unauthenticated user | 10.120.61.10:51721 | NULL | Connect | NULL | login | NULL             |
        | 237 | user                 | localhost          | NULL | Query   | 0    | NULL  | show processlist |
        +-----+----------------------+--------------------+------+---------+------+-------+------------------+
        

        Who are these unauthenticated users, more about how do they get there, and why aren’t they authenticated?

        The client-server handshake in MySQL is a 4-step process. Those familiar with mysql-proxy already know these steps, as there are four functions that a Lua script in mysql-proxy can override. The process is useful to know for figuring out exactly where a problem is when something breaks.
        (more…)

        Get it while it’s hot! The Fall 2008 issue of the MySQL Magazine is now available at including:

        • “Decision Table”-Driven Development by Jonathan Levin
        • Part I of a series on Transaction Time Validity in MySQL by Peter Brawley
        • An Overview of Zmanda Recovery Manager by Pythian’s own Gerry Narvaja
        • Keith Murphy, pills editor has a note about Drizzle.

        Download the PDF directly or go to the MySQL Magazine page to download any and all of the 6 issues.

        I was reading Savio Rodrigues’ post, dosage .

        Now, one health Keen feels that people will contribute less during bad financial times:

        The hungry and cold unemployed masses aren’t going to continue giving away their intellectual labor on the Internet in the speculative hope that they might get some “back end” revenue. “Free” doesn’t fill anyone’s belly; it doesn’t warm anyone up.

        I know several volunteer open source developers — I consider this to be a “role” that someone plays. A person may be *employed* as an open source developer (say, working at Sun on MySQL) but may also contribute to another open source project off-the-clock. I would consider that person to be a volunteer open source developer for the off-the-clock project.

        At any rate…very few people volunteer as some kind of investment with a monetary return. (more…)

        Recently I had an interesting issue crop up. Due to an unfortunate migration incident in which involved master/master replication and not checking to see if replication was caught up, surgery buy we ended up with an infinite replication loop of a number of SQL statements. awk helped immensely in the aftermath cleanup.

        The basics of the replication infinite loop were (more…)

        Recently I had an interesting issue crop up. Due to an unfortunate migration incident in which involved master/master replication and not checking to see if replication was caught up, surgery buy we ended up with an infinite replication loop of a number of SQL statements. awk helped immensely in the aftermath cleanup.

        The basics of the replication infinite loop were (more…)

        In my last post, illness a tale of two MySQL upgrades, visit a few folks asked if I would outline the process we used to upgrade, and what kind of downtime we had.

        Well, the processes were different for each upgrade, so I will tackle them in separate blog posts. The first step was to upgrade all our MySQL 5.1 machines to MariaDB 5.5. As mentioned in the previous post, MariaDB’s superior performance for subqueries is why we switched – and we switched back to MySQL for 5.6 to take full advantage of the performance_schema.

        It is not difficult to blog about our procedure, as we have documentation on each process. My first tip would be to do that in your own environment. This also enables other folks to help, even if they are sysadmins and not normally DBAs. You may notice the steps contain items that might be “obvious” to someone who has done maintenance before – we try to write them detailed enough that if you were doing it at 3 am and a bit sleep-deprived, you could follow the checklist and not miss anything. This also helps junior and aspiring DBAs not miss any steps as well.

        The major difference between MySQL 5.1 and MySQL 5.5 (and its forks, like MariaDB) is that FLOAT columns are handled differently. On MySQL 5.1, a float value could be in scientific notation (e.g. 9.58084e-05) and in 5.5, it’s not (e.g. 0.0000958084). This makes checksumming difficult, as all FLOAT values will show differences even when they are the same number. There is a workaround for this, devised by Shlomi Noach.

        We have an n+1 architecture for databases at Mozilla – this means that we have an extra server. If we need 1 master and 3 slaves, then n+1 is 1 master and 4 slaves. Because of this, there are 2 different ways we upgrade – the first slave we upgrade, and subsequent slaves/masters.

        These steps are copied and pasted from our notes, with minor changes (for example, item #2 is “send out maintenance notices” but in our document we have the e-mail addresses to send to).

        Assumptions: Throughout these notes we use ‘/var/lib/mysql’, as that is our standard place for MySQL. You may need to change this to suit your environment. We are also using Red Hat Enterprise Linux for our operating system, so this procedure is tailored to it (e.g. “yum install/yum remove”). We control packages using the freely available puppet mysql module we created.

        For the first slave
        The overall procedure is to perform a logical backup the database, create a new empty installation of the new server version, and import the backup. Replication does work from MySQL 5.1 to MariaDB 5.5 and back (at least, on the 25 or so clusters we have, replication worked in both directions. Your mileage may vary).

        1. Make sure the slave has the same data as the master with checksums (the previous checksum is fine, they should be running every 12 hours).
        2. Send out maintenance notices.

        3. Take the machine out of any load balanced services, if appropriate

        4. Set appropriate downtimes in Nagios

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed. [we have a different checklist for this]

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.

          1. If this machine is a slave, ensure that its master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe [or the slave_master_info table if using that]

        8. Stop access to the machine from anyone other than root (assuming you are connecting from root):

        9. UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        10. See what the default character set is for the server and databases:
          SHOW VARIABLES LIKE 'character_set_server'; SHOW VARIABLES LIKE 'character_set_database';
          SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE DEFAULT_CHARACTER_SET_NAME!='utf8' AND SCHEMA_NAME NOT IN ('mysql');

          If applicable, change the server defaults to UTF8 and change databases to utf8 with ALTER DATABASE dbname DEFAULT CHARACTER SET utf8;

        11. Stop access to the machine from anyone other than root (assuming you are connecting from root): UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;

        12. Check to see how big the data is:
          mysql> SELECT SUM(DATA_LENGTH)/1024/1024/1024 AS sizeGb FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA!='information_schema';

        13. Determine how you can export the data, given the size. You may be able to export without compression, or you may need to do a mysqldump | gzip -c > file.sql, then compress the old data files instead of just moving them aside.

        14. Do a du -sh * of the datadir and save for later, if you want to compare the size of the database to see how much space is returned after defragmenting

        15. Export the data from all databases, preserving character set, routines and triggers. Record the time for documentation’s sake. I’m assuming the character set from step 9 is utf8 (if it’s something like latin1, you’ll need to put in –default-character-set=latin1 in the command). If the machine has slaves, make sure to use –master-data=1. If you need to compress, change the shell command accordingly:
          time mysqldump --all-databases --routines --triggers --events > `date +%Y-%m-%d`_backup.sql
        16. Stop MySQL

        17. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        18. Do a rpm -qa | egrep -i "percona|mysql". Do a yum remove for the mysql/percona packages. It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later. Sample:
          yum remove Percona-Server-client Percona-Server-shared-compat Percona-XtraDB-Cluster-devel Percona-Server-server
        19. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression (if you need to compress, to decompress the sql file). If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        20. Decompress the sql file, if applicable.

        21. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″. Verify with rpm -qa | egrep -i “percona|mysql|maria”
        22. [this may be different in your environment; we use the freely available puppet mysql module we created.
        23. Run mysql_install_db

        24. Make any changes to /etc/my.cnf (e.g. run puppet). When going from MySQL 5.1 to 5.5, there are no particular global changes Mozilla made.
        25. – when we went from MySQL 5.0 to MySQL 5.1, we did a global change to reflect the new slow query log options.
        26. chown -R mysql:mysql /var/lib/mysql/

        27. chmod 775 /var/lib/mysql

        28. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is running.

        29. Turn off binary logging. Import the export, timing how long it takes, for reference:

        30. time mysql < YYYY_MM_DD_backup.sql
        31. Restart MySQL and look for errors, you may need to run mysql_upgrade.

        32. Turn on binary logging, if applicable.

        33. Test.

        34. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        35. Reinstate permissions on the users:
          UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        36. Re-slave any slaves of this machine, if needed.

        37. Turn back on Nagios, making sure all the checks are green first.

        38. Run a checksum on the master to propagate to this slave, and double-check data integrity on the slave. Note that you will want to use --ignore-columns with the output of this command in the checksum, to avoid false positives from scientific notation change (see https://blog.mozilla.org/it/2013/01/17/mysql-5-1-vs-mysql-5-5-floats-doubles-and-scientific-notation/)

        39. Find FLOAT/DOUBLE fields to ignore in checksum: SELECT GROUP_CONCAT(DISTINCT COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE IN ('float','double') AND TABLE_SCHEMA NOT IN ('mysql','information_schema','performance_schema');
        40. Put the machine back into the load balancer, if applicable.

        41. Inform folks the upgrade is over

        On the first upgrade, we did what is usually recommended - do a logical export with mysqldump, and then an import. With other upgrades in the same replication hierarchy, we can take advantage of Xtrabackup to stream the new version directly to the machine to be upgraded.

        The general procedure here is similar to the above, except that a logical export is not taken. After preparation steps are taken, a new empty MariaDB 5.5 server is installed. Then we use xtrabackup to backup and restore the existing MariaDB 5.5 server to the machine we are upgrading.

        For subsequent slaves, and the master

        1. Coordinate with affected parties ahead of time

        2. Send out any notices for downtime

        3. Take the machine out of any load balanced services, if appropriate. If the machine is a master, this means failing over the master first, so that this machine becomes a regular slave. [we have a different checklist for how to failover]

        4. Set appropriate downtimes in Nagios, including for any slaves

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed.

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.
          1. If this machine is a slave, ensure that the master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe

        8. Save a list of grants from pt-show-grants, just in case there are users/permissions that need to be preserved.
        9. [this is done because sometimes masters and slaves have different users, though we try to keep everything consistent]
        10. Figure out how big the backup will be by doing a du -sh on the datadir of the already-upgraded machine to be backed up, and make sure the new machine has enough space to keep the old version and have the new version as well.

        11. Stop MySQL on the machine to be upgraded.

        12. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        13. Do a rpm -qa | egrep -i "mysql|percona". Do a yum remove for the mysql packages (at least mysql-server, mysql). It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later.

        14. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression. If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        15. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″, running puppet manually. Verify with rpm -qa | egrep -i "percona|mysql|maria"

        16. Run mysql_install_db

        17. Make any changes to /etc/my.cnf (or run puppet). When going from MySQL 5.1 to 5.5, there are no particular changes.

        18. chown -R mysql:mysql /var/lib/mysql/

        19. chmod 775 /var/lib/mysql

        20. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is started.

        21. Stop MySQL, and move or delete the datadir that was created on upgrade.

        22. If you are directly streaming the backup to the machine to be upgraded, do this on the machine to be upgraded:
          cd $DATADIR
          nc -l 9999 | tar xfi -

        23. On the machine to be backed up (that is already upgraded), in a screen session, making sure you get any slave info:
          time innobackupex --slave-info --stream=tar $DATADIR | nc (IP/hostname) 9999

        24. Once xtrabackup is complete, fix permissions on the datadir:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        25. Prepare the backup:
          time innobackupex --apply-logs --target-dir=/var/lib/mysql

        26. Fix permissions on the datadir again:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        27. Restart MySQL and look for errors

        28. Test.

        29. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        30. Re-slave any slaves of this machine, if needed.

        31. Turn back on Nagios, making sure all checks are green first.

        32. Put the machine back into the load balancer, if applicable.

        33. Inform folks the upgrade is over

        It’s long and detailed, but not particularly difficult.

        Recently I had an interesting issue crop up. Due to an unfortunate migration incident in which involved master/master replication and not checking to see if replication was caught up, surgery buy we ended up with an infinite replication loop of a number of SQL statements. awk helped immensely in the aftermath cleanup.

        The basics of the replication infinite loop were (more…)

        In my last post, illness a tale of two MySQL upgrades, visit a few folks asked if I would outline the process we used to upgrade, and what kind of downtime we had.

        Well, the processes were different for each upgrade, so I will tackle them in separate blog posts. The first step was to upgrade all our MySQL 5.1 machines to MariaDB 5.5. As mentioned in the previous post, MariaDB’s superior performance for subqueries is why we switched – and we switched back to MySQL for 5.6 to take full advantage of the performance_schema.

        It is not difficult to blog about our procedure, as we have documentation on each process. My first tip would be to do that in your own environment. This also enables other folks to help, even if they are sysadmins and not normally DBAs. You may notice the steps contain items that might be “obvious” to someone who has done maintenance before – we try to write them detailed enough that if you were doing it at 3 am and a bit sleep-deprived, you could follow the checklist and not miss anything. This also helps junior and aspiring DBAs not miss any steps as well.

        The major difference between MySQL 5.1 and MySQL 5.5 (and its forks, like MariaDB) is that FLOAT columns are handled differently. On MySQL 5.1, a float value could be in scientific notation (e.g. 9.58084e-05) and in 5.5, it’s not (e.g. 0.0000958084). This makes checksumming difficult, as all FLOAT values will show differences even when they are the same number. There is a workaround for this, devised by Shlomi Noach.

        We have an n+1 architecture for databases at Mozilla – this means that we have an extra server. If we need 1 master and 3 slaves, then n+1 is 1 master and 4 slaves. Because of this, there are 2 different ways we upgrade – the first slave we upgrade, and subsequent slaves/masters.

        These steps are copied and pasted from our notes, with minor changes (for example, item #2 is “send out maintenance notices” but in our document we have the e-mail addresses to send to).

        Assumptions: Throughout these notes we use ‘/var/lib/mysql’, as that is our standard place for MySQL. You may need to change this to suit your environment. We are also using Red Hat Enterprise Linux for our operating system, so this procedure is tailored to it (e.g. “yum install/yum remove”). We control packages using the freely available puppet mysql module we created.

        For the first slave
        The overall procedure is to perform a logical backup the database, create a new empty installation of the new server version, and import the backup. Replication does work from MySQL 5.1 to MariaDB 5.5 and back (at least, on the 25 or so clusters we have, replication worked in both directions. Your mileage may vary).

        1. Make sure the slave has the same data as the master with checksums (the previous checksum is fine, they should be running every 12 hours).
        2. Send out maintenance notices.

        3. Take the machine out of any load balanced services, if appropriate

        4. Set appropriate downtimes in Nagios

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed. [we have a different checklist for this]

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.

          1. If this machine is a slave, ensure that its master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe [or the slave_master_info table if using that]

        8. Stop access to the machine from anyone other than root (assuming you are connecting from root):

        9. UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        10. See what the default character set is for the server and databases:
          SHOW VARIABLES LIKE 'character_set_server'; SHOW VARIABLES LIKE 'character_set_database';
          SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE DEFAULT_CHARACTER_SET_NAME!='utf8' AND SCHEMA_NAME NOT IN ('mysql');

          If applicable, change the server defaults to UTF8 and change databases to utf8 with ALTER DATABASE dbname DEFAULT CHARACTER SET utf8;

        11. Stop access to the machine from anyone other than root (assuming you are connecting from root): UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;

        12. Check to see how big the data is:
          mysql> SELECT SUM(DATA_LENGTH)/1024/1024/1024 AS sizeGb FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA!='information_schema';

        13. Determine how you can export the data, given the size. You may be able to export without compression, or you may need to do a mysqldump | gzip -c > file.sql, then compress the old data files instead of just moving them aside.

        14. Do a du -sh * of the datadir and save for later, if you want to compare the size of the database to see how much space is returned after defragmenting

        15. Export the data from all databases, preserving character set, routines and triggers. Record the time for documentation’s sake. I’m assuming the character set from step 9 is utf8 (if it’s something like latin1, you’ll need to put in –default-character-set=latin1 in the command). If the machine has slaves, make sure to use –master-data=1. If you need to compress, change the shell command accordingly:
          time mysqldump --all-databases --routines --triggers --events > `date +%Y-%m-%d`_backup.sql
        16. Stop MySQL

        17. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        18. Do a rpm -qa | egrep -i "percona|mysql". Do a yum remove for the mysql/percona packages. It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later. Sample:
          yum remove Percona-Server-client Percona-Server-shared-compat Percona-XtraDB-Cluster-devel Percona-Server-server
        19. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression (if you need to compress, to decompress the sql file). If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        20. Decompress the sql file, if applicable.

        21. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″. Verify with rpm -qa | egrep -i “percona|mysql|maria”
        22. [this may be different in your environment; we use the freely available puppet mysql module we created.
        23. Run mysql_install_db

        24. Make any changes to /etc/my.cnf (e.g. run puppet). When going from MySQL 5.1 to 5.5, there are no particular global changes Mozilla made.
        25. - when we went from MySQL 5.0 to MySQL 5.1, we did a global change to reflect the new slow query log options.
        26. chown -R mysql:mysql /var/lib/mysql/

        27. chmod 775 /var/lib/mysql

        28. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is running.

        29. Turn off binary logging. Import the export, timing how long it takes, for reference:

        30. time mysql < YYYY_MM_DD_backup.sql
        31. Restart MySQL and look for errors, you may need to run mysql_upgrade.

        32. Turn on binary logging, if applicable.

        33. Test.

        34. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        35. Reinstate permissions on the users:
          UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        36. Re-slave any slaves of this machine, if needed.

        37. Turn back on Nagios, making sure all the checks are green first.

        38. Run a checksum on the master to propagate to this slave, and double-check data integrity on the slave. Note that you will want to use --ignore-columns with the output of this command in the checksum, to avoid false positives from scientific notation change (see https://blog.mozilla.org/it/2013/01/17/mysql-5-1-vs-mysql-5-5-floats-doubles-and-scientific-notation/)

        39. Find FLOAT/DOUBLE fields to ignore in checksum: SELECT GROUP_CONCAT(DISTINCT COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE IN ('float','double') AND TABLE_SCHEMA NOT IN ('mysql','information_schema','performance_schema');
        40. Put the machine back into the load balancer, if applicable.

        41. Inform folks the upgrade is over

        On the first upgrade, we did what is usually recommended - do a logical export with mysqldump, and then an import. With other upgrades in the same replication hierarchy, we can take advantage of Xtrabackup to stream the new version directly to the machine to be upgraded.

        The general procedure here is similar to the above, except that a logical export is not taken. After preparation steps are taken, a new empty MariaDB 5.5 server is installed. Then we use xtrabackup to backup and restore the existing MariaDB 5.5 server to the machine we are upgrading.

        For subsequent slaves, and the master

        1. Coordinate with affected parties ahead of time

        2. Send out any notices for downtime

        3. Take the machine out of any load balanced services, if appropriate. If the machine is a master, this means failing over the master first, so that this machine becomes a regular slave. [we have a different checklist for how to failover]

        4. Set appropriate downtimes in Nagios, including for any slaves

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed.

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.
          1. If this machine is a slave, ensure that the master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe

        8. Save a list of grants from pt-show-grants, just in case there are users/permissions that need to be preserved.
        9. [this is done because sometimes masters and slaves have different users, though we try to keep everything consistent]
        10. Figure out how big the backup will be by doing a du -sh on the datadir of the already-upgraded machine to be backed up, and make sure the new machine has enough space to keep the old version and have the new version as well.

        11. Stop MySQL on the machine to be upgraded.

        12. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        13. Do a rpm -qa | egrep -i "mysql|percona". Do a yum remove for the mysql packages (at least mysql-server, mysql). It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later.

        14. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression. If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        15. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″, running puppet manually. Verify with rpm -qa | egrep -i "percona|mysql|maria"

        16. Run mysql_install_db

        17. Make any changes to /etc/my.cnf (or run puppet). When going from MySQL 5.1 to 5.5, there are no particular changes.

        18. chown -R mysql:mysql /var/lib/mysql/

        19. chmod 775 /var/lib/mysql

        20. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is started.

        21. Stop MySQL, and move or delete the datadir that was created on upgrade.

        22. If you are directly streaming the backup to the machine to be upgraded, do this on the machine to be upgraded:
          cd $DATADIR
          nc -l 9999 | tar xfi -

        23. On the machine to be backed up (that is already upgraded), in a screen session, making sure you get any slave info:
          time innobackupex --slave-info --stream=tar $DATADIR | nc (IP/hostname) 9999

        24. Once xtrabackup is complete, fix permissions on the datadir:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        25. Prepare the backup:
          time innobackupex --apply-logs --target-dir=/var/lib/mysql

        26. Fix permissions on the datadir again:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        27. Restart MySQL and look for errors

        28. Test.

        29. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        30. Re-slave any slaves of this machine, if needed.

        31. Turn back on Nagios, making sure all checks are green first.

        32. Put the machine back into the load balancer, if applicable.

        33. Inform folks the upgrade is over

        It’s long and detailed, but not particularly difficult.

        At the beginning of 2013, ophthalmologist Percona’s patched MySQL 5.5 and MariaDB 5.5. MySQL 5.1 was released in November 2008 – so at the beginning of the year, pharm we still had databases with no new major features in 4 years. Currently we have almost all our databases at Oracle’s MySQL 5.6 – the only stragglers are our cluster running TokuDB and a few machines that are no longer in use. Here’s a graph showing the state of our machines – you can see that in the first half of the year we concentrated on upgrading our 5.0 and 5.1 servers to 5.5, and then in the second half of the year we upgraded everything to MySQL 5.6 (click on the image to get a larger version):

        MySQL Versions in 2013

        After running some tests, we determined that MariaDB 5.5 was the best option for us and our particular workload. For most of our servers, it did not matter whether we use Percona, MariaDB or Oracle’s MySQL, but our Bugzilla servers really benefited from MariaDB’s better subquery optimization, so we went with that. We had set up some Percona 5.5 servers over the spring/summer of 2012, when we moved some of our infrastructure to a new data center.

        We upgraded to MySQL 5.5 to be on a recent version of MySQL. In the middle of the year, we had a choice – should we stay where we were, or should we upgrade? We had no particular directive from developers to upgrade for the new MySQL 5.6 features. However, we have been doing more and more digging into our systems, and we really wanted the performance_schema features so we could dig even more. We want to be able to parse queries in real-time, perhaps with Anemometer without having to take an offline log file and run pt-query-digest on it.

        So, we chose to upgrade to MySQL 5.6. Unfortunately, there were no other GA products to test against – by mid-2013, neither MariaDB nor Percona had a GA 5.6 product, so our bake-off was functional only, not performance-related. Oracle’s MySQL 5.6 passed with flying colors, and so we proceeded to upgrade.

        Now, we have a recent and consistent version of MySQL installed, that we can work with to gain insights into our systems. A pretty great goal to have been met for 2013!

        Recently I had an interesting issue crop up. Due to an unfortunate migration incident in which involved master/master replication and not checking to see if replication was caught up, surgery buy we ended up with an infinite replication loop of a number of SQL statements. awk helped immensely in the aftermath cleanup.

        The basics of the replication infinite loop were (more…)

        In my last post, illness a tale of two MySQL upgrades, visit a few folks asked if I would outline the process we used to upgrade, and what kind of downtime we had.

        Well, the processes were different for each upgrade, so I will tackle them in separate blog posts. The first step was to upgrade all our MySQL 5.1 machines to MariaDB 5.5. As mentioned in the previous post, MariaDB’s superior performance for subqueries is why we switched – and we switched back to MySQL for 5.6 to take full advantage of the performance_schema.

        It is not difficult to blog about our procedure, as we have documentation on each process. My first tip would be to do that in your own environment. This also enables other folks to help, even if they are sysadmins and not normally DBAs. You may notice the steps contain items that might be “obvious” to someone who has done maintenance before – we try to write them detailed enough that if you were doing it at 3 am and a bit sleep-deprived, you could follow the checklist and not miss anything. This also helps junior and aspiring DBAs not miss any steps as well.

        The major difference between MySQL 5.1 and MySQL 5.5 (and its forks, like MariaDB) is that FLOAT columns are handled differently. On MySQL 5.1, a float value could be in scientific notation (e.g. 9.58084e-05) and in 5.5, it’s not (e.g. 0.0000958084). This makes checksumming difficult, as all FLOAT values will show differences even when they are the same number. There is a workaround for this, devised by Shlomi Noach.

        We have an n+1 architecture for databases at Mozilla – this means that we have an extra server. If we need 1 master and 3 slaves, then n+1 is 1 master and 4 slaves. Because of this, there are 2 different ways we upgrade – the first slave we upgrade, and subsequent slaves/masters.

        These steps are copied and pasted from our notes, with minor changes (for example, item #2 is “send out maintenance notices” but in our document we have the e-mail addresses to send to).

        Assumptions: Throughout these notes we use ‘/var/lib/mysql’, as that is our standard place for MySQL. You may need to change this to suit your environment. We are also using Red Hat Enterprise Linux for our operating system, so this procedure is tailored to it (e.g. “yum install/yum remove”). We control packages using the freely available puppet mysql module we created.

        For the first slave
        The overall procedure is to perform a logical backup the database, create a new empty installation of the new server version, and import the backup. Replication does work from MySQL 5.1 to MariaDB 5.5 and back (at least, on the 25 or so clusters we have, replication worked in both directions. Your mileage may vary).

        1. Make sure the slave has the same data as the master with checksums (the previous checksum is fine, they should be running every 12 hours).
        2. Send out maintenance notices.

        3. Take the machine out of any load balanced services, if appropriate

        4. Set appropriate downtimes in Nagios

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed. [we have a different checklist for this]

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.

          1. If this machine is a slave, ensure that its master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe [or the slave_master_info table if using that]

        8. Stop access to the machine from anyone other than root (assuming you are connecting from root):

        9. UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        10. See what the default character set is for the server and databases:
          SHOW VARIABLES LIKE 'character_set_server'; SHOW VARIABLES LIKE 'character_set_database';
          SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE DEFAULT_CHARACTER_SET_NAME!='utf8' AND SCHEMA_NAME NOT IN ('mysql');

          If applicable, change the server defaults to UTF8 and change databases to utf8 with ALTER DATABASE dbname DEFAULT CHARACTER SET utf8;

        11. Stop access to the machine from anyone other than root (assuming you are connecting from root): UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;

        12. Check to see how big the data is:
          mysql> SELECT SUM(DATA_LENGTH)/1024/1024/1024 AS sizeGb FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA!='information_schema';

        13. Determine how you can export the data, given the size. You may be able to export without compression, or you may need to do a mysqldump | gzip -c > file.sql, then compress the old data files instead of just moving them aside.

        14. Do a du -sh * of the datadir and save for later, if you want to compare the size of the database to see how much space is returned after defragmenting

        15. Export the data from all databases, preserving character set, routines and triggers. Record the time for documentation’s sake. I’m assuming the character set from step 9 is utf8 (if it’s something like latin1, you’ll need to put in –default-character-set=latin1 in the command). If the machine has slaves, make sure to use –master-data=1. If you need to compress, change the shell command accordingly:
          time mysqldump --all-databases --routines --triggers --events > `date +%Y-%m-%d`_backup.sql
        16. Stop MySQL

        17. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        18. Do a rpm -qa | egrep -i "percona|mysql". Do a yum remove for the mysql/percona packages. It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later. Sample:
          yum remove Percona-Server-client Percona-Server-shared-compat Percona-XtraDB-Cluster-devel Percona-Server-server
        19. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression (if you need to compress, to decompress the sql file). If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        20. Decompress the sql file, if applicable.

        21. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″. Verify with rpm -qa | egrep -i “percona|mysql|maria”
        22. [this may be different in your environment; we use the freely available puppet mysql module we created.
        23. Run mysql_install_db

        24. Make any changes to /etc/my.cnf (e.g. run puppet). When going from MySQL 5.1 to 5.5, there are no particular global changes Mozilla made.
        25. - when we went from MySQL 5.0 to MySQL 5.1, we did a global change to reflect the new slow query log options.
        26. chown -R mysql:mysql /var/lib/mysql/

        27. chmod 775 /var/lib/mysql

        28. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is running.

        29. Turn off binary logging. Import the export, timing how long it takes, for reference:

        30. time mysql < YYYY_MM_DD_backup.sql
        31. Restart MySQL and look for errors, you may need to run mysql_upgrade.

        32. Turn on binary logging, if applicable.

        33. Test.

        34. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        35. Reinstate permissions on the users:
          UPDATE mysql.user SET password=REVERSE(password) WHERE user!='root'; FLUSH PRIVILEGES;
        36. Re-slave any slaves of this machine, if needed.

        37. Turn back on Nagios, making sure all the checks are green first.

        38. Run a checksum on the master to propagate to this slave, and double-check data integrity on the slave. Note that you will want to use --ignore-columns with the output of this command in the checksum, to avoid false positives from scientific notation change (see https://blog.mozilla.org/it/2013/01/17/mysql-5-1-vs-mysql-5-5-floats-doubles-and-scientific-notation/)

        39. Find FLOAT/DOUBLE fields to ignore in checksum: SELECT GROUP_CONCAT(DISTINCT COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE IN ('float','double') AND TABLE_SCHEMA NOT IN ('mysql','information_schema','performance_schema');
        40. Put the machine back into the load balancer, if applicable.

        41. Inform folks the upgrade is over

        On the first upgrade, we did what is usually recommended - do a logical export with mysqldump, and then an import. With other upgrades in the same replication hierarchy, we can take advantage of Xtrabackup to stream the new version directly to the machine to be upgraded.

        The general procedure here is similar to the above, except that a logical export is not taken. After preparation steps are taken, a new empty MariaDB 5.5 server is installed. Then we use xtrabackup to backup and restore the existing MariaDB 5.5 server to the machine we are upgrading.

        For subsequent slaves, and the master

        1. Coordinate with affected parties ahead of time

        2. Send out any notices for downtime

        3. Take the machine out of any load balanced services, if appropriate. If the machine is a master, this means failing over the master first, so that this machine becomes a regular slave. [we have a different checklist for how to failover]

        4. Set appropriate downtimes in Nagios, including for any slaves

        5. Start a screen session on the server

        6. Do a SHOW PROCESSLIST to see if there are any slaves of the machine. If so, move them to another master if they are needed.

        7. Do a SHOW SLAVE STATUS to see if this machine is a slave.
          1. If this machine is a slave, ensure that the master will not delete its binlogs while the upgrade is occurring.

          2. If this machine is a slave, do a SLAVE STOP; and copy the master.info file somewhere safe

        8. Save a list of grants from pt-show-grants, just in case there are users/permissions that need to be preserved.
        9. [this is done because sometimes masters and slaves have different users, though we try to keep everything consistent]
        10. Figure out how big the backup will be by doing a du -sh on the datadir of the already-upgraded machine to be backed up, and make sure the new machine has enough space to keep the old version and have the new version as well.

        11. Stop MySQL on the machine to be upgraded.

        12. Copy the config file (usually /etc/my.cnf) to a safe place (like /etc/my.cnf.51)

        13. Do a rpm -qa | egrep -i "mysql|percona". Do a yum remove for the mysql packages (at least mysql-server, mysql). It’s OK if it also removes related packages, like perl-DBD, but make a note of them, because you will want to reinstall them later.

        14. Move the /var/lib/mysql directory to /var/lib/mysql-old. Compress any files that need compression. If you absolutely cannot keep the files, see if you can copy them somewhere. We really want to preserve the old data directory just in case we need to revert.

        15. Install the proper packages by changing puppet to use “maridb55″ instead of “mysql51″ or “percona51″, running puppet manually. Verify with rpm -qa | egrep -i "percona|mysql|maria"

        16. Run mysql_install_db

        17. Make any changes to /etc/my.cnf (or run puppet). When going from MySQL 5.1 to 5.5, there are no particular changes.

        18. chown -R mysql:mysql /var/lib/mysql/

        19. chmod 775 /var/lib/mysql

        20. Start MySQL and check the error logs for any warnings. Get rid of any warnings/errors, and make sure MySQL is started.

        21. Stop MySQL, and move or delete the datadir that was created on upgrade.

        22. If you are directly streaming the backup to the machine to be upgraded, do this on the machine to be upgraded:
          cd $DATADIR
          nc -l 9999 | tar xfi -

        23. On the machine to be backed up (that is already upgraded), in a screen session, making sure you get any slave info:
          time innobackupex --slave-info --stream=tar $DATADIR | nc (IP/hostname) 9999

        24. Once xtrabackup is complete, fix permissions on the datadir:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        25. Prepare the backup:
          time innobackupex --apply-logs --target-dir=/var/lib/mysql

        26. Fix permissions on the datadir again:
          chown -R mysql:mysql /var/lib/mysql/
          chmod 775 /var/lib/mysql

        27. Restart MySQL and look for errors

        28. Test.

        29. If this machine was a slave, re-slave it. Let it catch up, making sure there are no data integrity errors, and no replication errors.

        30. Re-slave any slaves of this machine, if needed.

        31. Turn back on Nagios, making sure all checks are green first.

        32. Put the machine back into the load balancer, if applicable.

        33. Inform folks the upgrade is over

        It’s long and detailed, but not particularly difficult.

        At the beginning of 2013, ophthalmologist Percona’s patched MySQL 5.5 and MariaDB 5.5. MySQL 5.1 was released in November 2008 – so at the beginning of the year, pharm we still had databases with no new major features in 4 years. Currently we have almost all our databases at Oracle’s MySQL 5.6 – the only stragglers are our cluster running TokuDB and a few machines that are no longer in use. Here’s a graph showing the state of our machines – you can see that in the first half of the year we concentrated on upgrading our 5.0 and 5.1 servers to 5.5, and then in the second half of the year we upgraded everything to MySQL 5.6 (click on the image to get a larger version):

        MySQL Versions in 2013

        After running some tests, we determined that MariaDB 5.5 was the best option for us and our particular workload. For most of our servers, it did not matter whether we use Percona, MariaDB or Oracle’s MySQL, but our Bugzilla servers really benefited from MariaDB’s better subquery optimization, so we went with that. We had set up some Percona 5.5 servers over the spring/summer of 2012, when we moved some of our infrastructure to a new data center.

        We upgraded to MySQL 5.5 to be on a recent version of MySQL. In the middle of the year, we had a choice – should we stay where we were, or should we upgrade? We had no particular directive from developers to upgrade for the new MySQL 5.6 features. However, we have been doing more and more digging into our systems, and we really wanted the performance_schema features so we could dig even more. We want to be able to parse queries in real-time, perhaps with Anemometer without having to take an offline log file and run pt-query-digest on it.

        So, we chose to upgrade to MySQL 5.6. Unfortunately, there were no other GA products to test against – by mid-2013, neither MariaDB nor Percona had a GA 5.6 product, so our bake-off was functional only, not performance-related. Oracle’s MySQL 5.6 passed with flying colors, and so we proceeded to upgrade.

        Now, we have a recent and consistent version of MySQL installed, that we can work with to gain insights into our systems. A pretty great goal to have been met for 2013!

        At the beginning of 2013, this Mozilla’s MySQL databases were a mix of MySQL 5.0, viagra 100mg Percona’s patched MySQL 5.1, Percona’s patched MySQL 5.5 and MariaDB 5.5. MySQL 5.1 was released in November 2008 – so at the beginning of the year, we still had databases with no new major features in 4 years. Currently we have almost all our databases at Oracle’s MySQL 5.6 – the only stragglers are our cluster running TokuDB and a few machines that are no longer in use. Here’s a graph showing the state of our machines – you can see that in the first half of the year we concentrated on upgrading our 5.0 and 5.1 servers to 5.5, and then in the second half of the year we upgraded everything to MySQL 5.6 (click on the image to get a larger version):

        MySQL Versions in 2013

        After running some tests, we determined that MariaDB 5.5 was the best option for us and our particular workload. For most of our servers, it did not matter whether we use Percona, MariaDB or Oracle’s MySQL, but our Bugzilla servers really benefited from MariaDB’s better subquery optimization, so we went with that. We had set up some Percona 5.5 servers over the spring/summer of 2012, when we moved some of our infrastructure to a new data center.

        We upgraded to MySQL 5.5 to be on a recent version of MySQL. In the middle of the year, we had a choice – should we stay where we were, or should we upgrade? We had no particular directive from developers to upgrade for the new MySQL 5.6 features. However, we have been doing more and more digging into our systems, and we really wanted the performance_schema features so we could dig even more. We want to be able to parse queries in real-time, perhaps with Anemometer without having to take an offline log file and run pt-query-digest on it.

        So, we chose to upgrade to MySQL 5.6. Unfortunately, there were no other GA products to test against – by mid-2013, neither MariaDB nor Percona had a GA 5.6 product, so our bake-off was functional only, not performance-related. Oracle’s MySQL 5.6 passed with flying colors, and so we proceeded to upgrade.

        Now, we have a recent and consistent version of MySQL installed, that we can work with to gain insights into our systems. A pretty great goal to have been met for 2013!

        (The basics — comment here if you’d be interested to hear a non-partisan talk about the technical challenges faced by the IT team during the Obama campaign [particularly if you’re not an American who likes the idea of Obama as President, esophagitis abortion but even if you are].)

        So, order click posted this on election night:

        http://blogs.sun.com/jonathan/entry/change_has_come_to_america

        Now, during the extremely high peak times of Sept. 11-12, 2001. I was not at that keynote speech, but I have heard a lot about it, including the fact that they were down to 85% capacity due to previously planned maintenance, that they diverted resources from all their other web properties except for the Cartoon Network’s website, so children had a place to go on the internet, etc.
        (more…)

        (The basics — comment here if you’d be interested to hear a non-partisan talk about the technical challenges faced by the IT team during the Obama campaign [particularly if you’re not an American who likes the idea of Obama as President, esophagitis abortion but even if you are].)

        So, order click posted this on election night:

        http://blogs.sun.com/jonathan/entry/change_has_come_to_america

        Now, during the extremely high peak times of Sept. 11-12, 2001. I was not at that keynote speech, but I have heard a lot about it, including the fact that they were down to 85% capacity due to previously planned maintenance, that they diverted resources from all their other web properties except for the Cartoon Network’s website, so children had a place to go on the internet, etc.
        (more…)

        “There are 10 types of people in the world — those who understand binary, obesity and those who don’t.”

        The term “binary” in MySQL has many different meanings. How many can you come up with? I have 6, but I am willing to believe there are more!

        0) “Binary distribution” is the name for the package that contains a binary. Another use is “binary installation” but that’s pretty much the same usage pattern as “binary distribution”, so I won’t count “binary installation” as a separate usage.
        1) “Server binary” or “client binary” is the actual program (mysqld, mysql).
        2) “Binary format” is a compressed format. For example, DECIMAL is stored in a “binary format” — each group of nine digits is compressed into 4 bytes.
        3) “Binary log” is the change log. You can argue that this is an extension of #3, because the binary log is a compressed log, but “binary log” is encountered ubiquitously in the MySQL world, and “binary format” is somewhat obscure knowledge.
        4) “Binary CHARSET” - sets the collation to be case-insensitive. For instance, utf8_bin and latin1_bin are the binary collations for the utf8 and latin1 character sets, respectively.
        5) “Binary string” - a byte string. This is also known as the BINARY data type. There is some kind of wit/pun in the fact that a number in binary is actually a “bit string”.

        Any more I missed? There are over 1600 mentions of the word “binary” in the 5.0 manual!

        Brian Aker delivers the keynote speech at OpenSQL Camp: State of the Open Source Databases. The presentation begins with a disclaimer:
        “There is no way I’m going to tell you exactly where the future of databases go. We have way too many egos in the room to ever even begin a discussion…”
        and ends with Aker saying, viagra sale cure
        “What the hell does that mean?”

        View the video online at
        http://technocation.org/node/649/play
        or download the 42.6 MB Flash video file (.flv) directly at http://technocation.org/node/649/download.

        My summary: (more…)

        Brian Aker delivers the keynote speech at OpenSQL Camp: State of the Open Source Databases. The presentation begins with a disclaimer:
        “There is no way I’m going to tell you exactly where the future of databases go. We have way too many egos in the room to ever even begin a discussion…”
        and ends with Aker saying, viagra sale cure
        “What the hell does that mean?”

        View the video online at
        http://technocation.org/node/649/play
        or download the 42.6 MB Flash video file (.flv) directly at http://technocation.org/node/649/download.

        My summary: (more…)

        The MySQL 5.1 GA Release will be on or about Dec. 6th, prescription 2008.

        How do I know?
        (more…)

        Brian Aker delivers the keynote speech at OpenSQL Camp: State of the Open Source Databases. The presentation begins with a disclaimer:
        “There is no way I’m going to tell you exactly where the future of databases go. We have way too many egos in the room to ever even begin a discussion…”
        and ends with Aker saying, viagra sale cure
        “What the hell does that mean?”

        View the video online at
        http://technocation.org/node/649/play
        or download the 42.6 MB Flash video file (.flv) directly at http://technocation.org/node/649/download.

        My summary: (more…)

        The MySQL 5.1 GA Release will be on or about Dec. 6th, prescription 2008.

        How do I know?
        (more…)

        (one note, mind for the LISA presentation I gave entitled “How to Stop Hating MySQL”)

        OpenSQL Camp is in full swing! Baron Schwartz has done an amazing job organizing this free unconference.

        We are well into the 2nd session of the day, and the quality of the presentations is excellent (though I expected that!) and it is always great to see people.

        Some pictures….
        (more…)

        Brian Aker delivers the keynote speech at OpenSQL Camp: State of the Open Source Databases. The presentation begins with a disclaimer:
        “There is no way I’m going to tell you exactly where the future of databases go. We have way too many egos in the room to ever even begin a discussion…”
        and ends with Aker saying, viagra sale cure
        “What the hell does that mean?”

        View the video online at
        http://technocation.org/node/649/play
        or download the 42.6 MB Flash video file (.flv) directly at http://technocation.org/node/649/download.

        My summary: (more…)

        The MySQL 5.1 GA Release will be on or about Dec. 6th, prescription 2008.

        How do I know?
        (more…)

        (one note, mind for the LISA presentation I gave entitled “How to Stop Hating MySQL”)

        OpenSQL Camp is in full swing! Baron Schwartz has done an amazing job organizing this free unconference.

        We are well into the 2nd session of the day, and the quality of the presentations is excellent (though I expected that!) and it is always great to see people.

        Some pictures….
        (more…)

        (Note: updated with the presentation video on 11/15/2008)

        At LISA 2008, bulimics I gave a presentation entitled “How to Stop Hating MySQL: Fixing Common Mistakes and Myths”.

        The presentation slides can be downloaded as a PDF at:

        http://technocation.org/files/doc/stophatingmysql.pdf

        View the video online at http://www.youtube.com/watch?v=DylLYQlzuKo

        Here are some notes and links I referred to:

        a MySQL podcast (currently on hiatus) and blog posts about MySQL.

        Why you want to switch to MySQL 5.1

        How MySQL Uses Memory

        Query Cache Configuration

        EXPLAIN manual page

        EXPLAIN cheatsheet

        Brian Aker delivers the keynote speech at OpenSQL Camp: State of the Open Source Databases. The presentation begins with a disclaimer:
        “There is no way I’m going to tell you exactly where the future of databases go. We have way too many egos in the room to ever even begin a discussion…”
        and ends with Aker saying, viagra sale cure
        “What the hell does that mean?”

        View the video online at
        http://technocation.org/node/649/play
        or download the 42.6 MB Flash video file (.flv) directly at http://technocation.org/node/649/download.

        My summary: (more…)

        The MySQL 5.1 GA Release will be on or about Dec. 6th, prescription 2008.

        How do I know?
        (more…)

        (one note, mind for the LISA presentation I gave entitled “How to Stop Hating MySQL”)

        OpenSQL Camp is in full swing! Baron Schwartz has done an amazing job organizing this free unconference.

        We are well into the 2nd session of the day, and the quality of the presentations is excellent (though I expected that!) and it is always great to see people.

        Some pictures….
        (more…)

        (Note: updated with the presentation video on 11/15/2008)

        At LISA 2008, bulimics I gave a presentation entitled “How to Stop Hating MySQL: Fixing Common Mistakes and Myths”.

        The presentation slides can be downloaded as a PDF at:

        http://technocation.org/files/doc/stophatingmysql.pdf

        View the video online at http://www.youtube.com/watch?v=DylLYQlzuKo

        Here are some notes and links I referred to:

        a MySQL podcast (currently on hiatus) and blog posts about MySQL.

        Why you want to switch to MySQL 5.1

        How MySQL Uses Memory

        Query Cache Configuration

        EXPLAIN manual page

        EXPLAIN cheatsheet

        The maximum length of a VARCHAR is only restricted by the maximum row length. In most storage engines, oncologist the maximum row length is the maximum allowed by MySQL, illness which is 65,535 bytes. Only the NDB storage engine has a different maximum value.

        The VARCHAR data type has some overhead. If the length of VARCHAR is less than 255, one byte per row is used to store the actual length of the string. If the length of VARCHAR is greater than 255, the overhead cost of storing the string length is two bytes per row. Thus, the maximum length of a VARCHAR should be 65,533 bytes.

        However, that is not the case:

        mysql> CREATE TABLE max_len_varchar(fld VARCHAR(65533) CHARSET latin1);
        ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
        
        mysql> CREATE TABLE max_len_varchar(fld VARCHAR(65532) CHARSET latin1);
        Query OK, 0 rows affected (0.16 sec)
        

        Why is that? I believe that is because there is also a 1-byte overhead per row, though I have not confirmed that. There is some allusion to that on the Forge Internals page……but I have not confirmed that it is the case.

        (one of the reasons I believe this is that there’s a different error message when the character set is multi-byte:

        mysql> CREATE TABLE max_len_varchar(fld VARCHAR(16384) CHARSET utf8);
        ERROR 1074 (42000): Column length too big for column 'fld' (max = 16383); use BLOB or TEXT instead
        

        This actually gives the maximum length you can use. Note that the maximum usable length still seems to be missing 1 byte from the theoretical max of 65,535:

        mysql> SELECT 16383*4+2;
        +-----------+
        | 16383*4+2 |
        +-----------+
        |     65534 |
        +-----------+
        1 row in set (0.00 sec)
        

        )

        (and yes, you can use TEXT and BLOB fields if you actually want a variable-length string with more than 65,532 bytes, that’s not really the point of this article)

        Brian Aker delivers the keynote speech at OpenSQL Camp: State of the Open Source Databases. The presentation begins with a disclaimer:
        “There is no way I’m going to tell you exactly where the future of databases go. We have way too many egos in the room to ever even begin a discussion…”
        and ends with Aker saying, viagra sale cure
        “What the hell does that mean?”

        View the video online at
        http://technocation.org/node/649/play
        or download the 42.6 MB Flash video file (.flv) directly at http://technocation.org/node/649/download.

        My summary: (more…)

        The MySQL 5.1 GA Release will be on or about Dec. 6th, prescription 2008.

        How do I know?
        (more…)

        (one note, mind for the LISA presentation I gave entitled “How to Stop Hating MySQL”)

        OpenSQL Camp is in full swing! Baron Schwartz has done an amazing job organizing this free unconference.

        We are well into the 2nd session of the day, and the quality of the presentations is excellent (though I expected that!) and it is always great to see people.

        Some pictures….
        (more…)

        (Note: updated with the presentation video on 11/15/2008)

        At LISA 2008, bulimics I gave a presentation entitled “How to Stop Hating MySQL: Fixing Common Mistakes and Myths”.

        The presentation slides can be downloaded as a PDF at:

        http://technocation.org/files/doc/stophatingmysql.pdf

        View the video online at http://www.youtube.com/watch?v=DylLYQlzuKo

        Here are some notes and links I referred to:

        a MySQL podcast (currently on hiatus) and blog posts about MySQL.

        Why you want to switch to MySQL 5.1

        How MySQL Uses Memory

        Query Cache Configuration

        EXPLAIN manual page

        EXPLAIN cheatsheet

        The maximum length of a VARCHAR is only restricted by the maximum row length. In most storage engines, oncologist the maximum row length is the maximum allowed by MySQL, illness which is 65,535 bytes. Only the NDB storage engine has a different maximum value.

        The VARCHAR data type has some overhead. If the length of VARCHAR is less than 255, one byte per row is used to store the actual length of the string. If the length of VARCHAR is greater than 255, the overhead cost of storing the string length is two bytes per row. Thus, the maximum length of a VARCHAR should be 65,533 bytes.

        However, that is not the case:

        mysql> CREATE TABLE max_len_varchar(fld VARCHAR(65533) CHARSET latin1);
        ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
        
        mysql> CREATE TABLE max_len_varchar(fld VARCHAR(65532) CHARSET latin1);
        Query OK, 0 rows affected (0.16 sec)
        

        Why is that? I believe that is because there is also a 1-byte overhead per row, though I have not confirmed that. There is some allusion to that on the Forge Internals page……but I have not confirmed that it is the case.

        (one of the reasons I believe this is that there’s a different error message when the character set is multi-byte:

        mysql> CREATE TABLE max_len_varchar(fld VARCHAR(16384) CHARSET utf8);
        ERROR 1074 (42000): Column length too big for column 'fld' (max = 16383); use BLOB or TEXT instead
        

        This actually gives the maximum length you can use. Note that the maximum usable length still seems to be missing 1 byte from the theoretical max of 65,535:

        mysql> SELECT 16383*4+2;
        +-----------+
        | 16383*4+2 |
        +-----------+
        |     65534 |
        +-----------+
        1 row in set (0.00 sec)
        

        )

        (and yes, you can use TEXT and BLOB fields if you actually want a variable-length string with more than 65,532 bytes, that’s not really the point of this article)

        Happy birthday to a wonderful community organizer for MySQL.

        And happy birthday to Leslie Hawthorn, cardiologist Google’s geek herder.

        Thank you for making life better for open source volunteers like me!

        Brian Aker delivers the keynote speech at OpenSQL Camp: State of the Open Source Databases. The presentation begins with a disclaimer:
        “There is no way I’m going to tell you exactly where the future of databases go. We have way too many egos in the room to ever even begin a discussion…”
        and ends with Aker saying, viagra sale cure
        “What the hell does that mean?”

        View the video online at
        http://technocation.org/node/649/play
        or download the 42.6 MB Flash video file (.flv) directly at http://technocation.org/node/649/download.

        My summary: (more…)

        The MySQL 5.1 GA Release will be on or about Dec. 6th, prescription 2008.

        How do I know?
        (more…)

        (one note, mind for the LISA presentation I gave entitled “How to Stop Hating MySQL”)

        OpenSQL Camp is in full swing! Baron Schwartz has done an amazing job organizing this free unconference.

        We are well into the 2nd session of the day, and the quality of the presentations is excellent (though I expected that!) and it is always great to see people.

        Some pictures….
        (more…)

        (Note: updated with the presentation video on 11/15/2008)

        At LISA 2008, bulimics I gave a presentation entitled “How to Stop Hating MySQL: Fixing Common Mistakes and Myths”.

        The presentation slides can be downloaded as a PDF at:

        http://technocation.org/files/doc/stophatingmysql.pdf

        View the video online at http://www.youtube.com/watch?v=DylLYQlzuKo

        Here are some notes and links I referred to:

        a MySQL podcast (currently on hiatus) and blog posts about MySQL.

        Why you want to switch to MySQL 5.1

        How MySQL Uses Memory

        Query Cache Configuration

        EXPLAIN manual page

        EXPLAIN cheatsheet

        The maximum length of a VARCHAR is only restricted by the maximum row length. In most storage engines, oncologist the maximum row length is the maximum allowed by MySQL, illness which is 65,535 bytes. Only the NDB storage engine has a different maximum value.

        The VARCHAR data type has some overhead. If the length of VARCHAR is less than 255, one byte per row is used to store the actual length of the string. If the length of VARCHAR is greater than 255, the overhead cost of storing the string length is two bytes per row. Thus, the maximum length of a VARCHAR should be 65,533 bytes.

        However, that is not the case:

        mysql> CREATE TABLE max_len_varchar(fld VARCHAR(65533) CHARSET latin1);
        ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
        
        mysql> CREATE TABLE max_len_varchar(fld VARCHAR(65532) CHARSET latin1);
        Query OK, 0 rows affected (0.16 sec)
        

        Why is that? I believe that is because there is also a 1-byte overhead per row, though I have not confirmed that. There is some allusion to that on the Forge Internals page……but I have not confirmed that it is the case.

        (one of the reasons I believe this is that there’s a different error message when the character set is multi-byte:

        mysql> CREATE TABLE max_len_varchar(fld VARCHAR(16384) CHARSET utf8);
        ERROR 1074 (42000): Column length too big for column 'fld' (max = 16383); use BLOB or TEXT instead
        

        This actually gives the maximum length you can use. Note that the maximum usable length still seems to be missing 1 byte from the theoretical max of 65,535:

        mysql> SELECT 16383*4+2;
        +-----------+
        | 16383*4+2 |
        +-----------+
        |     65534 |
        +-----------+
        1 row in set (0.00 sec)
        

        )

        (and yes, you can use TEXT and BLOB fields if you actually want a variable-length string with more than 65,532 bytes, that’s not really the point of this article)

        Happy birthday to a wonderful community organizer for MySQL.

        And happy birthday to Leslie Hawthorn, cardiologist Google’s geek herder.

        Thank you for making life better for open source volunteers like me!

        I had so much to say in response to a recent post asking about virtualization from Jennifer Glore that I realized it was long enough to be a blog post.

        It really depends on what you’re looking to do. Many companies don’t have the money and staff to have an in-house data center with proper power and network redundancy; others don’t want the depreciation associated with owning computer hardware (even if they leased space in a data center, find they’d have to buy equipment to put in it).

        Some reasons to virtualize:
        1) you need a fresh machine and cannot wait to order a new one or re-purpose an older one.
        2) your need for machines/services fluctuates (and again, prescription re-purposing takes time). This need can be as broad as employee desktops or as specialized as needing extra machines for a qa cycle.
        3) you own resources that are not being utilized to the fullest extent — virtualization can sometimes make more or better use of these resources.
        4) you need to easily re-create an exact environment and do not want to worry about hardware differences.

        Here at The Pythian Group, we have clients using many different types of virtualization.

        A few clients are using MySQL on Amazon’s EC2 platform. The biggest advantage is also one of the biggest disadvantages — before EBS (elastic block storage) was offered, the threat of a reboot wiping the filesystem clean meant that we really had to ensure that we had:

        1) redundancy
        2) a catalog of what was needed on the machine — everything from users to perl modules. This can be done either by using a machine image, documenting a setup and recreating the machine manually, or via automation. By using tools like CFEngine or Puppet to control machine configurations, our clients have the added benefit of more standardized installations and layouts. As well, pushing a change (say, adding a new hire’s public key into an authorized_keys file) is made much much more easy.

        The downside is, of course, the work to set up tools such as this. However, they are fairly common best practices, and are almost always good to implement.

        The clients that are using Amazon EC2 are happy with the service they get; One client I work with especially closely moved to EC2 because they had a bad experience with their hosting provider. I cannot speak to pricing, but I do know that being able to just *have* another machine up and running in minutes is very useful … periodic work such as load testing and qa cycles work really well.

        We also have many clients who “virtualize” MySQL by running more than one instance on a server. A few clients have a replication slave that has 2 instances — one as a read-only reporting instance, and another as an instance to backup, doing a cold backup — stopping the instance, copying the files, starting the instance back up. Other clients have 4-5 MySQL instances running on one machine, for developers to have individual database instances to write code against and as backups for 4-5 different physical machines.

        OpenSQL Camp is a free unconference happening Friday, viagra order women's health .

        Whether or not you have already registered for OpenSQL Camp by putting your name here:

        http://www.opensqlcamp.org/index.php?title=Events/2008/AttendeeList

        you should be aware of very important information.
        (more…)

        OpenSQL Camp is a free unconference happening Friday, viagra order women's health .

        Whether or not you have already registered for OpenSQL Camp by putting your name here:

        http://www.opensqlcamp.org/index.php?title=Events/2008/AttendeeList

        you should be aware of very important information.
        (more…)

        A quiz, audiologist in 4 parts:

        Given the following table definition in the sakila database:
        (more…)

        OpenSQL Camp is a free unconference happening Friday, viagra order women's health .

        Whether or not you have already registered for OpenSQL Camp by putting your name here:

        http://www.opensqlcamp.org/index.php?title=Events/2008/AttendeeList

        you should be aware of very important information.
        (more…)

        A quiz, audiologist in 4 parts:

        Given the following table definition in the sakila database:
        (more…)

        In a nutshell: What’s New in MySQL 5.1.

        Release notes: Changes in release 5.1.x (Production).

        And yes, pancreatitis .

        To play the video directly, unhealthy go to http://www.youtube.com/watch?v=Hs4S7vONGMQ.

        The slides can be downloaded as a PDF or in Open Office presentation (odp) format.
        (more…)

        OpenSQL Camp is a free unconference happening Friday, viagra order women's health .

        Whether or not you have already registered for OpenSQL Camp by putting your name here:

        http://www.opensqlcamp.org/index.php?title=Events/2008/AttendeeList

        you should be aware of very important information.
        (more…)

        A quiz, audiologist in 4 parts:

        Given the following table definition in the sakila database:
        (more…)

        In a nutshell: What’s New in MySQL 5.1.

        Release notes: Changes in release 5.1.x (Production).

        And yes, pancreatitis .

        To play the video directly, unhealthy go to http://www.youtube.com/watch?v=Hs4S7vONGMQ.

        The slides can be downloaded as a PDF or in Open Office presentation (odp) format.
        (more…)

        Wheel of protocol, pills turn turn turn.
        Tell us the lesson that we should learn.
        (with apologies to the original source)

        Writing a book comes with many challenges. For me, writing a MySQL book for MySQL beginners, who may or may not be database beginners, has fed my compulsion to research and test bizarre interactions.

        Today’s lesson is on what protocol is used when connecting to a local mysqld instance on a non-Windows machine. The TCP/IP protocol is used by default when connecting on a Windows machine, and connecting from any operating system to a non-local mysqld instance. I am assuming the connections are being made by a command line client such as mysql, mysqladmin or mysqldump. Connections made via connectors such as Connector/J, an ODBC connector, DBD::mysql, etc are not covered in this post.

        If you seem to be having trouble connecting, check your options against your intentions. Unexpected behavior is usually seen when your intention is to connect using TCP/IP, but the connection is using a socket file instead. Note the following behaviors:

        (more…)

        OpenSQL Camp is a free unconference happening Friday, viagra order women's health .

        Whether or not you have already registered for OpenSQL Camp by putting your name here:

        http://www.opensqlcamp.org/index.php?title=Events/2008/AttendeeList

        you should be aware of very important information.
        (more…)

        A quiz, audiologist in 4 parts:

        Given the following table definition in the sakila database:
        (more…)

        In a nutshell: What’s New in MySQL 5.1.

        Release notes: Changes in release 5.1.x (Production).

        And yes, pancreatitis .

        To play the video directly, unhealthy go to http://www.youtube.com/watch?v=Hs4S7vONGMQ.

        The slides can be downloaded as a PDF or in Open Office presentation (odp) format.
        (more…)

        Wheel of protocol, pills turn turn turn.
        Tell us the lesson that we should learn.
        (with apologies to the original source)

        Writing a book comes with many challenges. For me, writing a MySQL book for MySQL beginners, who may or may not be database beginners, has fed my compulsion to research and test bizarre interactions.

        Today’s lesson is on what protocol is used when connecting to a local mysqld instance on a non-Windows machine. The TCP/IP protocol is used by default when connecting on a Windows machine, and connecting from any operating system to a non-local mysqld instance. I am assuming the connections are being made by a command line client such as mysql, mysqladmin or mysqldump. Connections made via connectors such as Connector/J, an ODBC connector, DBD::mysql, etc are not covered in this post.

        If you seem to be having trouble connecting, check your options against your intentions. Unexpected behavior is usually seen when your intention is to connect using TCP/IP, but the connection is using a socket file instead. Note the following behaviors:

        (more…)

        At this month’s Back Bay LISA, and :

        Back Bay LISA Lightning Talks
        April 2013

        • Mentoring by Matt Finnigan
          (5:07)
          Matt Finnigan gave a talk discussing the LOPSA Mentorship program. If you aren’t familiar, the mentorship program is a free service offered by LOPSA, where any admin who needs help, either with a project or just general career guidance, can sign up to be connected to someone with experience in their target area. You need to be a LOPSA member in order to be a mentor, but being a protege is open to anyone, regardless of LOPSA membership.

        • Cooking by Adam Moskowitz
          (4:31)
          Adam Moskowitz gave a talk discussing cooking for system administrators. He appealed to our sense of making things as well as our need of healthy food and good value. Adam encouraged us to try cooking, and although most people thought it was expensive to property outfit a kitchen, he reminded us that it was actually a fraction of the price of our new laptops, and the kitchen gear would last a lot longer.

        • Amazon SMS by KM Peterson
          (3:06)

          This talk is a result of KM Peterson’s search for a provider-agnostic method to send SMS messages that didn’t break the bank or involve maintaining an array of modems. He ended up setting up a script to talk to Amazon’s SMS service, and provided us example code in his slides.

        • SmartOS by Nahum Shalman
          (4:25)
          Nahum Shalman gave a really nice introduction to SmartOS, a derivative of OpenSolaris which is maintained by Joyent. Interestingly, the Linux-native KVM was ported to the SmartOS kernel, allowing creative and secure uses of jails and virtual sandboxes, all taking advantage of native ZFS, dtrace, and all kinds of delicious Solaris-y goodness.

        • MySQL and Puppet by Sheeri Cabral
          (5:04)
          Sheeri Cabral came from Mozilla to talk with us about how they’re deploying MySQL using Puppet. Her slides had example code, and she walked us through the abstracted object and up to the deployment on the actual nodes.

        • Secrets by KM Peterson
          (3:00)
          KM Peterson’s”second talk was on Shamir’s Secret Sharing Scheme, aka ‘SSSS’. The idea behind this crypto tech is that you have a secret which you want to ensure can only be recovered by the collaboration of a minimum number of involved people – say three of your team of five. You encrypt the plaintext and generate as many keys as people you have, and tell the app how many should be required to release the information. To pull the data out, you provide any of the generated keys, as long as the number of different keys meets the minimum determined when the data was encrypted.

        • Stick Destroyer by John Jarvis
          (3:01)
          John Jarvis talked to us about a creative use for his Raspberry Pi – he securely erases flash media using Stick Destroyer. He rigged up a light so that you have a nice visual indicator of when the stick is being erased, and when it’s done.

        • Sensu by Pat Cable
          (3:26)
          Pat Cable showed up to talk about Sensu, a ruby-based monitoring solution that uses AMQP queues to distribute tasks around a monitoring infrastructure that can scale out horizontally to monitor extremely large numbers of machines. It’s definitely a “next gen” monitoring solution that you should be aware of.

        • Sysadmins and Doctors by Matt Simmons
          (4:36)
          I got up in front of everyone and talked briefly about something that I’ve noticed – mainly about how I see our profession splintering, but that the splintered elements (such as network and storage administrators) aren’t actually specialties of “system administrators”, it’s much more like the specialized administrators are specialist doctors, and system administrators are like general practitioners. The idea is still half baked, but that’s the fun of a lightning talk, right? I didn’t offer any answers, but I asked a lot of questions.

        Enjoy!

        OpenSQL Camp is a free unconference happening Friday, viagra order women's health .

        Whether or not you have already registered for OpenSQL Camp by putting your name here:

        http://www.opensqlcamp.org/index.php?title=Events/2008/AttendeeList

        you should be aware of very important information.
        (more…)

        A quiz, audiologist in 4 parts:

        Given the following table definition in the sakila database:
        (more…)

        In a nutshell: What’s New in MySQL 5.1.

        Release notes: Changes in release 5.1.x (Production).

        And yes, pancreatitis .

        To play the video directly, unhealthy go to http://www.youtube.com/watch?v=Hs4S7vONGMQ.

        The slides can be downloaded as a PDF or in Open Office presentation (odp) format.
        (more…)

        Wheel of protocol, pills turn turn turn.
        Tell us the lesson that we should learn.
        (with apologies to the original source)

        Writing a book comes with many challenges. For me, writing a MySQL book for MySQL beginners, who may or may not be database beginners, has fed my compulsion to research and test bizarre interactions.

        Today’s lesson is on what protocol is used when connecting to a local mysqld instance on a non-Windows machine. The TCP/IP protocol is used by default when connecting on a Windows machine, and connecting from any operating system to a non-local mysqld instance. I am assuming the connections are being made by a command line client such as mysql, mysqladmin or mysqldump. Connections made via connectors such as Connector/J, an ODBC connector, DBD::mysql, etc are not covered in this post.

        If you seem to be having trouble connecting, check your options against your intentions. Unexpected behavior is usually seen when your intention is to connect using TCP/IP, but the connection is using a socket file instead. Note the following behaviors:

        (more…)

        At this month’s Back Bay LISA, and :

        Back Bay LISA Lightning Talks
        April 2013

        • Mentoring by Matt Finnigan
          (5:07)
          Matt Finnigan gave a talk discussing the LOPSA Mentorship program. If you aren’t familiar, the mentorship program is a free service offered by LOPSA, where any admin who needs help, either with a project or just general career guidance, can sign up to be connected to someone with experience in their target area. You need to be a LOPSA member in order to be a mentor, but being a protege is open to anyone, regardless of LOPSA membership.

        • Cooking by Adam Moskowitz
          (4:31)
          Adam Moskowitz gave a talk discussing cooking for system administrators. He appealed to our sense of making things as well as our need of healthy food and good value. Adam encouraged us to try cooking, and although most people thought it was expensive to property outfit a kitchen, he reminded us that it was actually a fraction of the price of our new laptops, and the kitchen gear would last a lot longer.

        • Amazon SMS by KM Peterson
          (3:06)

          This talk is a result of KM Peterson’s search for a provider-agnostic method to send SMS messages that didn’t break the bank or involve maintaining an array of modems. He ended up setting up a script to talk to Amazon’s SMS service, and provided us example code in his slides.

        • SmartOS by Nahum Shalman
          (4:25)
          Nahum Shalman gave a really nice introduction to SmartOS, a derivative of OpenSolaris which is maintained by Joyent. Interestingly, the Linux-native KVM was ported to the SmartOS kernel, allowing creative and secure uses of jails and virtual sandboxes, all taking advantage of native ZFS, dtrace, and all kinds of delicious Solaris-y goodness.

        • MySQL and Puppet by Sheeri Cabral
          (5:04)
          Sheeri Cabral came from Mozilla to talk with us about how they’re deploying MySQL using Puppet. Her slides had example code, and she walked us through the abstracted object and up to the deployment on the actual nodes.

        • Secrets by KM Peterson
          (3:00)
          KM Peterson’s”second talk was on Shamir’s Secret Sharing Scheme, aka ‘SSSS’. The idea behind this crypto tech is that you have a secret which you want to ensure can only be recovered by the collaboration of a minimum number of involved people – say three of your team of five. You encrypt the plaintext and generate as many keys as people you have, and tell the app how many should be required to release the information. To pull the data out, you provide any of the generated keys, as long as the number of different keys meets the minimum determined when the data was encrypted.

        • Stick Destroyer by John Jarvis
          (3:01)
          John Jarvis talked to us about a creative use for his Raspberry Pi – he securely erases flash media using Stick Destroyer. He rigged up a light so that you have a nice visual indicator of when the stick is being erased, and when it’s done.

        • Sensu by Pat Cable
          (3:26)
          Pat Cable showed up to talk about Sensu, a ruby-based monitoring solution that uses AMQP queues to distribute tasks around a monitoring infrastructure that can scale out horizontally to monitor extremely large numbers of machines. It’s definitely a “next gen” monitoring solution that you should be aware of.

        • Sysadmins and Doctors by Matt Simmons
          (4:36)
          I got up in front of everyone and talked briefly about something that I’ve noticed – mainly about how I see our profession splintering, but that the splintered elements (such as network and storage administrators) aren’t actually specialties of “system administrators”, it’s much more like the specialized administrators are specialist doctors, and system administrators are like general practitioners. The idea is still half baked, but that’s the fun of a lightning talk, right? I didn’t offer any answers, but I asked a lot of questions.

        Enjoy!

        This morning I watched Tomas Ulin’s Keynote at Percona Live: MySQL Conference and Expo, steroids delivered yesterday. I missed this live as I am not at Percona Live (I am on a conference hiatus from March through September for personal reasons). As far as the technical content in it, viagra order there have been a few posts about the Hadoop Applier and MySQL 5.7, cialis 40mg so there’s not much of a need to delve in there.

        Message #1: Failure
        I was impressed that Ulin spoke of failure. Around 7:27 in the video above, Ulin says, “We really failed with 5.0,” and “even 5.1 we weren’t fully and back on track when we released.” He spoke about the new way MySQL 5.5 and 5.6 were engineered, a hybrid agile/milestone development cycle. There are some hidden messages here:

        Hidden Message #1: Oracle is a great steward for MySQL

        MySQL 5.0 was GA on October 2005 and MySQL 5.1 was GA on Nov 2008. This was before Oracle was ever in the picture. Ulin said MySQL 5.0 and 5.1 failed, mentioning that the ship cycle was rushed and features were released when they were not ready, causing technical debt. MySQL 5.5 and 5.6 are different, and the hidden message is that Oracle had a part in making this better. And honestly, I believe that. Say what you will about Oracle, but this cannot be argued: they do know how to develop and ship a product.

        When Sun bought MySQL, I was pretty hopeful. I knew a bunch of folks within MySQL that were unhappy, and from what I gathered, MySQL did not really need a parent company, they needed a *parent*. It looks like Oracle has been great for getting MySQL releases in shape – MySQL 5.5 had a LOT of great features from the community, when previously it could take years before a community patch was accepted, and MySQL 5.6 has a lot of innovative features from strong developers.

        Hidden Message #2: Oracle is more reliable for MySQL releases

        With 5.5 and 5.6, the 2-year development cycle has been almost exact – MySQL 5.5 was GA in Dec 2010, 25 months after 5.1, and MySQL 5.6 was GA in Feb 2013, 26 months after 5.5. I remember the agonizing wait for MySQL 5.0, and it looks like under Oracle we will not have a debacle like that again. Ulin specifically mentioned a 24-month cycle.

        Speaking about cycles, have you noticed that Oracle has not stopped providing the MySQL binaries and code, even for the EOL’d products? I have a blog post I want to write about the lifecycle policy and how it has evolved, so stay tuned for that.

        Message #2: Oracle’s Investment in MySQL
        Ulin mentioned “Oracle’s investment in MySQL” a lot. Why? Well, in 2009 Oracle made a written 5-year commitment to MySQL. It is now 2013, and some folks have been wanting Oracle to make another promise. Frankly, I think it is ridiculous to ask a company to make a commitment in writing so far ahead, and nobody demands that of any other company. Oracle has doubled the number of MySQL engineers and tripled the number of MySQL QA staff, and has the largest team of MySQL developers of any company anywhere. Unfortunately we did not get exactly how many people that is…it is only a little bit impressive if you tripled the team from 1 person to 3 people, but more impressive if you tripled the team from 10 people to 30 people.

        Let’s take a number we did get – the QA team now has 400 person-years of experience on it. Let’s say the QA team was 10 people before, and now it is tripled to 30 people. That means the average QA person has over 13 years’ experience in QA, which is about a year longer than my entire post-college IT career. If there are more engineers with less experience, that’s pretty impressive for the number of people working on finding and fixing bugs, and if there are fewer engineers, they have even more years of experience.

        Hidden Message #3: Oracle has an open-ended commitment to MySQL
        Oracle has MySQL trainings, events and tech tours on 6 continents (none in Antarctica, but plenty in at least 3 different cities throughout Africa – Nairobi, Johannesburg, Pretoria, at lesat that I’m aware of because I mention it on the podcast along with SkySQL, Percona, FromDual and Tungsten events). They have doubled the engineering staff and tripled the QA staff and are still hiring. In the past year they sponsored over 40 events, delivered over 70 talks at conferences, and of course they have a huge investment in MySQL Connect – just as Percona Live added a day in 2013, MySQL Connect is adding a day as well. With all that time and money invested in people and events, they are not going to stop working on MySQL any time soon.

        (BTW if you missed it, MySQL Connect has a “super saver” registration before May 3rd, save 45%. Hard to believe it’s almost half price if you register now!)

        Note that the hidden messages above are completely my interpretation, and represent nothing other than my opinion.

        OpenSQL Camp is a free unconference happening Friday, viagra order women's health .

        Whether or not you have already registered for OpenSQL Camp by putting your name here:

        http://www.opensqlcamp.org/index.php?title=Events/2008/AttendeeList

        you should be aware of very important information.
        (more…)

        A quiz, audiologist in 4 parts:

        Given the following table definition in the sakila database:
        (more…)

        In a nutshell: What’s New in MySQL 5.1.

        Release notes: Changes in release 5.1.x (Production).

        And yes, pancreatitis .

        To play the video directly, unhealthy go to http://www.youtube.com/watch?v=Hs4S7vONGMQ.

        The slides can be downloaded as a PDF or in Open Office presentation (odp) format.
        (more…)

        Wheel of protocol, pills turn turn turn.
        Tell us the lesson that we should learn.
        (with apologies to the original source)

        Writing a book comes with many challenges. For me, writing a MySQL book for MySQL beginners, who may or may not be database beginners, has fed my compulsion to research and test bizarre interactions.

        Today’s lesson is on what protocol is used when connecting to a local mysqld instance on a non-Windows machine. The TCP/IP protocol is used by default when connecting on a Windows machine, and connecting from any operating system to a non-local mysqld instance. I am assuming the connections are being made by a command line client such as mysql, mysqladmin or mysqldump. Connections made via connectors such as Connector/J, an ODBC connector, DBD::mysql, etc are not covered in this post.

        If you seem to be having trouble connecting, check your options against your intentions. Unexpected behavior is usually seen when your intention is to connect using TCP/IP, but the connection is using a socket file instead. Note the following behaviors:

        (more…)

        At this month’s Back Bay LISA, and :

        Back Bay LISA Lightning Talks
        April 2013

        • Mentoring by Matt Finnigan
          (5:07)
          Matt Finnigan gave a talk discussing the LOPSA Mentorship program. If you aren’t familiar, the mentorship program is a free service offered by LOPSA, where any admin who needs help, either with a project or just general career guidance, can sign up to be connected to someone with experience in their target area. You need to be a LOPSA member in order to be a mentor, but being a protege is open to anyone, regardless of LOPSA membership.

        • Cooking by Adam Moskowitz
          (4:31)
          Adam Moskowitz gave a talk discussing cooking for system administrators. He appealed to our sense of making things as well as our need of healthy food and good value. Adam encouraged us to try cooking, and although most people thought it was expensive to property outfit a kitchen, he reminded us that it was actually a fraction of the price of our new laptops, and the kitchen gear would last a lot longer.

        • Amazon SMS by KM Peterson
          (3:06)

          This talk is a result of KM Peterson’s search for a provider-agnostic method to send SMS messages that didn’t break the bank or involve maintaining an array of modems. He ended up setting up a script to talk to Amazon’s SMS service, and provided us example code in his slides.

        • SmartOS by Nahum Shalman
          (4:25)
          Nahum Shalman gave a really nice introduction to SmartOS, a derivative of OpenSolaris which is maintained by Joyent. Interestingly, the Linux-native KVM was ported to the SmartOS kernel, allowing creative and secure uses of jails and virtual sandboxes, all taking advantage of native ZFS, dtrace, and all kinds of delicious Solaris-y goodness.

        • MySQL and Puppet by Sheeri Cabral
          (5:04)
          Sheeri Cabral came from Mozilla to talk with us about how they’re deploying MySQL using Puppet. Her slides had example code, and she walked us through the abstracted object and up to the deployment on the actual nodes.

        • Secrets by KM Peterson
          (3:00)
          KM Peterson’s”second talk was on Shamir’s Secret Sharing Scheme, aka ‘SSSS’. The idea behind this crypto tech is that you have a secret which you want to ensure can only be recovered by the collaboration of a minimum number of involved people – say three of your team of five. You encrypt the plaintext and generate as many keys as people you have, and tell the app how many should be required to release the information. To pull the data out, you provide any of the generated keys, as long as the number of different keys meets the minimum determined when the data was encrypted.

        • Stick Destroyer by John Jarvis
          (3:01)
          John Jarvis talked to us about a creative use for his Raspberry Pi – he securely erases flash media using Stick Destroyer. He rigged up a light so that you have a nice visual indicator of when the stick is being erased, and when it’s done.

        • Sensu by Pat Cable
          (3:26)
          Pat Cable showed up to talk about Sensu, a ruby-based monitoring solution that uses AMQP queues to distribute tasks around a monitoring infrastructure that can scale out horizontally to monitor extremely large numbers of machines. It’s definitely a “next gen” monitoring solution that you should be aware of.

        • Sysadmins and Doctors by Matt Simmons
          (4:36)
          I got up in front of everyone and talked briefly about something that I’ve noticed – mainly about how I see our profession splintering, but that the splintered elements (such as network and storage administrators) aren’t actually specialties of “system administrators”, it’s much more like the specialized administrators are specialist doctors, and system administrators are like general practitioners. The idea is still half baked, but that’s the fun of a lightning talk, right? I didn’t offer any answers, but I asked a lot of questions.

        Enjoy!

        This morning I watched Tomas Ulin’s Keynote at Percona Live: MySQL Conference and Expo, steroids delivered yesterday. I missed this live as I am not at Percona Live (I am on a conference hiatus from March through September for personal reasons). As far as the technical content in it, viagra order there have been a few posts about the Hadoop Applier and MySQL 5.7, cialis 40mg so there’s not much of a need to delve in there.

        Message #1: Failure
        I was impressed that Ulin spoke of failure. Around 7:27 in the video above, Ulin says, “We really failed with 5.0,” and “even 5.1 we weren’t fully and back on track when we released.” He spoke about the new way MySQL 5.5 and 5.6 were engineered, a hybrid agile/milestone development cycle. There are some hidden messages here:

        Hidden Message #1: Oracle is a great steward for MySQL

        MySQL 5.0 was GA on October 2005 and MySQL 5.1 was GA on Nov 2008. This was before Oracle was ever in the picture. Ulin said MySQL 5.0 and 5.1 failed, mentioning that the ship cycle was rushed and features were released when they were not ready, causing technical debt. MySQL 5.5 and 5.6 are different, and the hidden message is that Oracle had a part in making this better. And honestly, I believe that. Say what you will about Oracle, but this cannot be argued: they do know how to develop and ship a product.

        When Sun bought MySQL, I was pretty hopeful. I knew a bunch of folks within MySQL that were unhappy, and from what I gathered, MySQL did not really need a parent company, they needed a *parent*. It looks like Oracle has been great for getting MySQL releases in shape – MySQL 5.5 had a LOT of great features from the community, when previously it could take years before a community patch was accepted, and MySQL 5.6 has a lot of innovative features from strong developers.

        Hidden Message #2: Oracle is more reliable for MySQL releases

        With 5.5 and 5.6, the 2-year development cycle has been almost exact – MySQL 5.5 was GA in Dec 2010, 25 months after 5.1, and MySQL 5.6 was GA in Feb 2013, 26 months after 5.5. I remember the agonizing wait for MySQL 5.0, and it looks like under Oracle we will not have a debacle like that again. Ulin specifically mentioned a 24-month cycle.

        Speaking about cycles, have you noticed that Oracle has not stopped providing the MySQL binaries and code, even for the EOL’d products? I have a blog post I want to write about the lifecycle policy and how it has evolved, so stay tuned for that.

        Message #2: Oracle’s Investment in MySQL
        Ulin mentioned “Oracle’s investment in MySQL” a lot. Why? Well, in 2009 Oracle made a written 5-year commitment to MySQL. It is now 2013, and some folks have been wanting Oracle to make another promise. Frankly, I think it is ridiculous to ask a company to make a commitment in writing so far ahead, and nobody demands that of any other company. Oracle has doubled the number of MySQL engineers and tripled the number of MySQL QA staff, and has the largest team of MySQL developers of any company anywhere. Unfortunately we did not get exactly how many people that is…it is only a little bit impressive if you tripled the team from 1 person to 3 people, but more impressive if you tripled the team from 10 people to 30 people.

        Let’s take a number we did get – the QA team now has 400 person-years of experience on it. Let’s say the QA team was 10 people before, and now it is tripled to 30 people. That means the average QA person has over 13 years’ experience in QA, which is about a year longer than my entire post-college IT career. If there are more engineers with less experience, that’s pretty impressive for the number of people working on finding and fixing bugs, and if there are fewer engineers, they have even more years of experience.

        Hidden Message #3: Oracle has an open-ended commitment to MySQL
        Oracle has MySQL trainings, events and tech tours on 6 continents (none in Antarctica, but plenty in at least 3 different cities throughout Africa – Nairobi, Johannesburg, Pretoria, at lesat that I’m aware of because I mention it on the podcast along with SkySQL, Percona, FromDual and Tungsten events). They have doubled the engineering staff and tripled the QA staff and are still hiring. In the past year they sponsored over 40 events, delivered over 70 talks at conferences, and of course they have a huge investment in MySQL Connect – just as Percona Live added a day in 2013, MySQL Connect is adding a day as well. With all that time and money invested in people and events, they are not going to stop working on MySQL any time soon.

        (BTW if you missed it, MySQL Connect has a “super saver” registration before May 3rd, save 45%. Hard to believe it’s almost half price if you register now!)

        Note that the hidden messages above are completely my interpretation, and represent nothing other than my opinion.

        You probably know that mysql -h host_or_ip can connect you to a remote host.

        But did you know that you can change the host you are connected to from within mysql?

        The undocumented (as far as I can tell, buy in the MySQL manual and in the “help” on the mysql command line) CONNECT statement can help.
        (more…)

        OpenSQL Camp is a free unconference happening Friday, viagra order women's health .

        Whether or not you have already registered for OpenSQL Camp by putting your name here:

        http://www.opensqlcamp.org/index.php?title=Events/2008/AttendeeList

        you should be aware of very important information.
        (more…)

        A quiz, audiologist in 4 parts:

        Given the following table definition in the sakila database:
        (more…)

        In a nutshell: What’s New in MySQL 5.1.

        Release notes: Changes in release 5.1.x (Production).

        And yes, pancreatitis .

        To play the video directly, unhealthy go to http://www.youtube.com/watch?v=Hs4S7vONGMQ.

        The slides can be downloaded as a PDF or in Open Office presentation (odp) format.
        (more…)

        Wheel of protocol, pills turn turn turn.
        Tell us the lesson that we should learn.
        (with apologies to the original source)

        Writing a book comes with many challenges. For me, writing a MySQL book for MySQL beginners, who may or may not be database beginners, has fed my compulsion to research and test bizarre interactions.

        Today’s lesson is on what protocol is used when connecting to a local mysqld instance on a non-Windows machine. The TCP/IP protocol is used by default when connecting on a Windows machine, and connecting from any operating system to a non-local mysqld instance. I am assuming the connections are being made by a command line client such as mysql, mysqladmin or mysqldump. Connections made via connectors such as Connector/J, an ODBC connector, DBD::mysql, etc are not covered in this post.

        If you seem to be having trouble connecting, check your options against your intentions. Unexpected behavior is usually seen when your intention is to connect using TCP/IP, but the connection is using a socket file instead. Note the following behaviors:

        (more…)

        At this month’s Back Bay LISA, and :

        Back Bay LISA Lightning Talks
        April 2013

        • Mentoring by Matt Finnigan
          (5:07)
          Matt Finnigan gave a talk discussing the LOPSA Mentorship program. If you aren’t familiar, the mentorship program is a free service offered by LOPSA, where any admin who needs help, either with a project or just general career guidance, can sign up to be connected to someone with experience in their target area. You need to be a LOPSA member in order to be a mentor, but being a protege is open to anyone, regardless of LOPSA membership.

        • Cooking by Adam Moskowitz
          (4:31)
          Adam Moskowitz gave a talk discussing cooking for system administrators. He appealed to our sense of making things as well as our need of healthy food and good value. Adam encouraged us to try cooking, and although most people thought it was expensive to property outfit a kitchen, he reminded us that it was actually a fraction of the price of our new laptops, and the kitchen gear would last a lot longer.

        • Amazon SMS by KM Peterson
          (3:06)

          This talk is a result of KM Peterson’s search for a provider-agnostic method to send SMS messages that didn’t break the bank or involve maintaining an array of modems. He ended up setting up a script to talk to Amazon’s SMS service, and provided us example code in his slides.

        • SmartOS by Nahum Shalman
          (4:25)
          Nahum Shalman gave a really nice introduction to SmartOS, a derivative of OpenSolaris which is maintained by Joyent. Interestingly, the Linux-native KVM was ported to the SmartOS kernel, allowing creative and secure uses of jails and virtual sandboxes, all taking advantage of native ZFS, dtrace, and all kinds of delicious Solaris-y goodness.

        • MySQL and Puppet by Sheeri Cabral
          (5:04)
          Sheeri Cabral came from Mozilla to talk with us about how they’re deploying MySQL using Puppet. Her slides had example code, and she walked us through the abstracted object and up to the deployment on the actual nodes.

        • Secrets by KM Peterson
          (3:00)
          KM Peterson’s”second talk was on Shamir’s Secret Sharing Scheme, aka ‘SSSS’. The idea behind this crypto tech is that you have a secret which you want to ensure can only be recovered by the collaboration of a minimum number of involved people – say three of your team of five. You encrypt the plaintext and generate as many keys as people you have, and tell the app how many should be required to release the information. To pull the data out, you provide any of the generated keys, as long as the number of different keys meets the minimum determined when the data was encrypted.

        • Stick Destroyer by John Jarvis
          (3:01)
          John Jarvis talked to us about a creative use for his Raspberry Pi – he securely erases flash media using Stick Destroyer. He rigged up a light so that you have a nice visual indicator of when the stick is being erased, and when it’s done.

        • Sensu by Pat Cable
          (3:26)
          Pat Cable showed up to talk about Sensu, a ruby-based monitoring solution that uses AMQP queues to distribute tasks around a monitoring infrastructure that can scale out horizontally to monitor extremely large numbers of machines. It’s definitely a “next gen” monitoring solution that you should be aware of.

        • Sysadmins and Doctors by Matt Simmons
          (4:36)
          I got up in front of everyone and talked briefly about something that I’ve noticed – mainly about how I see our profession splintering, but that the splintered elements (such as network and storage administrators) aren’t actually specialties of “system administrators”, it’s much more like the specialized administrators are specialist doctors, and system administrators are like general practitioners. The idea is still half baked, but that’s the fun of a lightning talk, right? I didn’t offer any answers, but I asked a lot of questions.

        Enjoy!

        This morning I watched Tomas Ulin’s Keynote at Percona Live: MySQL Conference and Expo, steroids delivered yesterday. I missed this live as I am not at Percona Live (I am on a conference hiatus from March through September for personal reasons). As far as the technical content in it, viagra order there have been a few posts about the Hadoop Applier and MySQL 5.7, cialis 40mg so there’s not much of a need to delve in there.

        Message #1: Failure
        I was impressed that Ulin spoke of failure. Around 7:27 in the video above, Ulin says, “We really failed with 5.0,” and “even 5.1 we weren’t fully and back on track when we released.” He spoke about the new way MySQL 5.5 and 5.6 were engineered, a hybrid agile/milestone development cycle. There are some hidden messages here:

        Hidden Message #1: Oracle is a great steward for MySQL

        MySQL 5.0 was GA on October 2005 and MySQL 5.1 was GA on Nov 2008. This was before Oracle was ever in the picture. Ulin said MySQL 5.0 and 5.1 failed, mentioning that the ship cycle was rushed and features were released when they were not ready, causing technical debt. MySQL 5.5 and 5.6 are different, and the hidden message is that Oracle had a part in making this better. And honestly, I believe that. Say what you will about Oracle, but this cannot be argued: they do know how to develop and ship a product.

        When Sun bought MySQL, I was pretty hopeful. I knew a bunch of folks within MySQL that were unhappy, and from what I gathered, MySQL did not really need a parent company, they needed a *parent*. It looks like Oracle has been great for getting MySQL releases in shape – MySQL 5.5 had a LOT of great features from the community, when previously it could take years before a community patch was accepted, and MySQL 5.6 has a lot of innovative features from strong developers.

        Hidden Message #2: Oracle is more reliable for MySQL releases

        With 5.5 and 5.6, the 2-year development cycle has been almost exact – MySQL 5.5 was GA in Dec 2010, 25 months after 5.1, and MySQL 5.6 was GA in Feb 2013, 26 months after 5.5. I remember the agonizing wait for MySQL 5.0, and it looks like under Oracle we will not have a debacle like that again. Ulin specifically mentioned a 24-month cycle.

        Speaking about cycles, have you noticed that Oracle has not stopped providing the MySQL binaries and code, even for the EOL’d products? I have a blog post I want to write about the lifecycle policy and how it has evolved, so stay tuned for that.

        Message #2: Oracle’s Investment in MySQL
        Ulin mentioned “Oracle’s investment in MySQL” a lot. Why? Well, in 2009 Oracle made a written 5-year commitment to MySQL. It is now 2013, and some folks have been wanting Oracle to make another promise. Frankly, I think it is ridiculous to ask a company to make a commitment in writing so far ahead, and nobody demands that of any other company. Oracle has doubled the number of MySQL engineers and tripled the number of MySQL QA staff, and has the largest team of MySQL developers of any company anywhere. Unfortunately we did not get exactly how many people that is…it is only a little bit impressive if you tripled the team from 1 person to 3 people, but more impressive if you tripled the team from 10 people to 30 people.

        Let’s take a number we did get – the QA team now has 400 person-years of experience on it. Let’s say the QA team was 10 people before, and now it is tripled to 30 people. That means the average QA person has over 13 years’ experience in QA, which is about a year longer than my entire post-college IT career. If there are more engineers with less experience, that’s pretty impressive for the number of people working on finding and fixing bugs, and if there are fewer engineers, they have even more years of experience.

        Hidden Message #3: Oracle has an open-ended commitment to MySQL
        Oracle has MySQL trainings, events and tech tours on 6 continents (none in Antarctica, but plenty in at least 3 different cities throughout Africa – Nairobi, Johannesburg, Pretoria, at lesat that I’m aware of because I mention it on the podcast along with SkySQL, Percona, FromDual and Tungsten events). They have doubled the engineering staff and tripled the QA staff and are still hiring. In the past year they sponsored over 40 events, delivered over 70 talks at conferences, and of course they have a huge investment in MySQL Connect – just as Percona Live added a day in 2013, MySQL Connect is adding a day as well. With all that time and money invested in people and events, they are not going to stop working on MySQL any time soon.

        (BTW if you missed it, MySQL Connect has a “super saver” registration before May 3rd, save 45%. Hard to believe it’s almost half price if you register now!)

        Note that the hidden messages above are completely my interpretation, and represent nothing other than my opinion.

        You probably know that mysql -h host_or_ip can connect you to a remote host.

        But did you know that you can change the host you are connected to from within mysql?

        The undocumented (as far as I can tell, buy in the MySQL manual and in the “help” on the mysql command line) CONNECT statement can help.
        (more…)

        Yesterday I announced the MySQL Unconference. Some folks have asked about the MySQL Camp that both Giuseppe and I previously announced.

        They are one and the same. In order to minimize confusion, syringe I’ll change things to say “MySQL Camp” instead of “Unconference”. Apologies to those who were confused!

        OpenSQL Camp is a free unconference happening Friday, viagra order women's health .

        Whether or not you have already registered for OpenSQL Camp by putting your name here:

        http://www.opensqlcamp.org/index.php?title=Events/2008/AttendeeList

        you should be aware of very important information.
        (more…)

        A quiz, audiologist in 4 parts:

        Given the following table definition in the sakila database:
        (more…)

        In a nutshell: What’s New in MySQL 5.1.

        Release notes: Changes in release 5.1.x (Production).

        And yes, pancreatitis .

        To play the video directly, unhealthy go to http://www.youtube.com/watch?v=Hs4S7vONGMQ.

        The slides can be downloaded as a PDF or in Open Office presentation (odp) format.
        (more…)

        Wheel of protocol, pills turn turn turn.
        Tell us the lesson that we should learn.
        (with apologies to the original source)

        Writing a book comes with many challenges. For me, writing a MySQL book for MySQL beginners, who may or may not be database beginners, has fed my compulsion to research and test bizarre interactions.

        Today’s lesson is on what protocol is used when connecting to a local mysqld instance on a non-Windows machine. The TCP/IP protocol is used by default when connecting on a Windows machine, and connecting from any operating system to a non-local mysqld instance. I am assuming the connections are being made by a command line client such as mysql, mysqladmin or mysqldump. Connections made via connectors such as Connector/J, an ODBC connector, DBD::mysql, etc are not covered in this post.

        If you seem to be having trouble connecting, check your options against your intentions. Unexpected behavior is usually seen when your intention is to connect using TCP/IP, but the connection is using a socket file instead. Note the following behaviors:

        (more…)

        At this month’s Back Bay LISA, and :

        Back Bay LISA Lightning Talks
        April 2013

        • Mentoring by Matt Finnigan
          (5:07)
          Matt Finnigan gave a talk discussing the LOPSA Mentorship program. If you aren’t familiar, the mentorship program is a free service offered by LOPSA, where any admin who needs help, either with a project or just general career guidance, can sign up to be connected to someone with experience in their target area. You need to be a LOPSA member in order to be a mentor, but being a protege is open to anyone, regardless of LOPSA membership.

        • Cooking by Adam Moskowitz
          (4:31)
          Adam Moskowitz gave a talk discussing cooking for system administrators. He appealed to our sense of making things as well as our need of healthy food and good value. Adam encouraged us to try cooking, and although most people thought it was expensive to property outfit a kitchen, he reminded us that it was actually a fraction of the price of our new laptops, and the kitchen gear would last a lot longer.

        • Amazon SMS by KM Peterson
          (3:06)

          This talk is a result of KM Peterson’s search for a provider-agnostic method to send SMS messages that didn’t break the bank or involve maintaining an array of modems. He ended up setting up a script to talk to Amazon’s SMS service, and provided us example code in his slides.

        • SmartOS by Nahum Shalman
          (4:25)
          Nahum Shalman gave a really nice introduction to SmartOS, a derivative of OpenSolaris which is maintained by Joyent. Interestingly, the Linux-native KVM was ported to the SmartOS kernel, allowing creative and secure uses of jails and virtual sandboxes, all taking advantage of native ZFS, dtrace, and all kinds of delicious Solaris-y goodness.

        • MySQL and Puppet by Sheeri Cabral
          (5:04)
          Sheeri Cabral came from Mozilla to talk with us about how they’re deploying MySQL using Puppet. Her slides had example code, and she walked us through the abstracted object and up to the deployment on the actual nodes.

        • Secrets by KM Peterson
          (3:00)
          KM Peterson’s”second talk was on Shamir’s Secret Sharing Scheme, aka ‘SSSS’. The idea behind this crypto tech is that you have a secret which you want to ensure can only be recovered by the collaboration of a minimum number of involved people – say three of your team of five. You encrypt the plaintext and generate as many keys as people you have, and tell the app how many should be required to release the information. To pull the data out, you provide any of the generated keys, as long as the number of different keys meets the minimum determined when the data was encrypted.

        • Stick Destroyer by John Jarvis
          (3:01)
          John Jarvis talked to us about a creative use for his Raspberry Pi – he securely erases flash media using Stick Destroyer. He rigged up a light so that you have a nice visual indicator of when the stick is being erased, and when it’s done.

        • Sensu by Pat Cable
          (3:26)
          Pat Cable showed up to talk about Sensu, a ruby-based monitoring solution that uses AMQP queues to distribute tasks around a monitoring infrastructure that can scale out horizontally to monitor extremely large numbers of machines. It’s definitely a “next gen” monitoring solution that you should be aware of.

        • Sysadmins and Doctors by Matt Simmons
          (4:36)
          I got up in front of everyone and talked briefly about something that I’ve noticed – mainly about how I see our profession splintering, but that the splintered elements (such as network and storage administrators) aren’t actually specialties of “system administrators”, it’s much more like the specialized administrators are specialist doctors, and system administrators are like general practitioners. The idea is still half baked, but that’s the fun of a lightning talk, right? I didn’t offer any answers, but I asked a lot of questions.

        Enjoy!

        This morning I watched Tomas Ulin’s Keynote at Percona Live: MySQL Conference and Expo, steroids delivered yesterday. I missed this live as I am not at Percona Live (I am on a conference hiatus from March through September for personal reasons). As far as the technical content in it, viagra order there have been a few posts about the Hadoop Applier and MySQL 5.7, cialis 40mg so there’s not much of a need to delve in there.

        Message #1: Failure
        I was impressed that Ulin spoke of failure. Around 7:27 in the video above, Ulin says, “We really failed with 5.0,” and “even 5.1 we weren’t fully and back on track when we released.” He spoke about the new way MySQL 5.5 and 5.6 were engineered, a hybrid agile/milestone development cycle. There are some hidden messages here:

        Hidden Message #1: Oracle is a great steward for MySQL

        MySQL 5.0 was GA on October 2005 and MySQL 5.1 was GA on Nov 2008. This was before Oracle was ever in the picture. Ulin said MySQL 5.0 and 5.1 failed, mentioning that the ship cycle was rushed and features were released when they were not ready, causing technical debt. MySQL 5.5 and 5.6 are different, and the hidden message is that Oracle had a part in making this better. And honestly, I believe that. Say what you will about Oracle, but this cannot be argued: they do know how to develop and ship a product.

        When Sun bought MySQL, I was pretty hopeful. I knew a bunch of folks within MySQL that were unhappy, and from what I gathered, MySQL did not really need a parent company, they needed a *parent*. It looks like Oracle has been great for getting MySQL releases in shape – MySQL 5.5 had a LOT of great features from the community, when previously it could take years before a community patch was accepted, and MySQL 5.6 has a lot of innovative features from strong developers.

        Hidden Message #2: Oracle is more reliable for MySQL releases

        With 5.5 and 5.6, the 2-year development cycle has been almost exact – MySQL 5.5 was GA in Dec 2010, 25 months after 5.1, and MySQL 5.6 was GA in Feb 2013, 26 months after 5.5. I remember the agonizing wait for MySQL 5.0, and it looks like under Oracle we will not have a debacle like that again. Ulin specifically mentioned a 24-month cycle.

        Speaking about cycles, have you noticed that Oracle has not stopped providing the MySQL binaries and code, even for the EOL’d products? I have a blog post I want to write about the lifecycle policy and how it has evolved, so stay tuned for that.

        Message #2: Oracle’s Investment in MySQL
        Ulin mentioned “Oracle’s investment in MySQL” a lot. Why? Well, in 2009 Oracle made a written 5-year commitment to MySQL. It is now 2013, and some folks have been wanting Oracle to make another promise. Frankly, I think it is ridiculous to ask a company to make a commitment in writing so far ahead, and nobody demands that of any other company. Oracle has doubled the number of MySQL engineers and tripled the number of MySQL QA staff, and has the largest team of MySQL developers of any company anywhere. Unfortunately we did not get exactly how many people that is…it is only a little bit impressive if you tripled the team from 1 person to 3 people, but more impressive if you tripled the team from 10 people to 30 people.

        Let’s take a number we did get – the QA team now has 400 person-years of experience on it. Let’s say the QA team was 10 people before, and now it is tripled to 30 people. That means the average QA person has over 13 years’ experience in QA, which is about a year longer than my entire post-college IT career. If there are more engineers with less experience, that’s pretty impressive for the number of people working on finding and fixing bugs, and if there are fewer engineers, they have even more years of experience.

        Hidden Message #3: Oracle has an open-ended commitment to MySQL
        Oracle has MySQL trainings, events and tech tours on 6 continents (none in Antarctica, but plenty in at least 3 different cities throughout Africa – Nairobi, Johannesburg, Pretoria, at lesat that I’m aware of because I mention it on the podcast along with SkySQL, Percona, FromDual and Tungsten events). They have doubled the engineering staff and tripled the QA staff and are still hiring. In the past year they sponsored over 40 events, delivered over 70 talks at conferences, and of course they have a huge investment in MySQL Connect – just as Percona Live added a day in 2013, MySQL Connect is adding a day as well. With all that time and money invested in people and events, they are not going to stop working on MySQL any time soon.

        (BTW if you missed it, MySQL Connect has a “super saver” registration before May 3rd, save 45%. Hard to believe it’s almost half price if you register now!)

        Note that the hidden messages above are completely my interpretation, and represent nothing other than my opinion.

        You probably know that mysql -h host_or_ip can connect you to a remote host.

        But did you know that you can change the host you are connected to from within mysql?

        The undocumented (as far as I can tell, buy in the MySQL manual and in the “help” on the mysql command line) CONNECT statement can help.
        (more…)

        Yesterday I announced the MySQL Unconference. Some folks have asked about the MySQL Camp that both Giuseppe and I previously announced.

        They are one and the same. In order to minimize confusion, syringe I’ll change things to say “MySQL Camp” instead of “Unconference”. Apologies to those who were confused!

        I am happy and pleased to announce the 2009 MySQL Unconference. The Unconference is a free conference that gives the community a chance to participate without having to incur the large expense of the official conference. Community members old and new will be on hand to speak, page answer questions, sickness give advice and generally help out. It will be taking place at the same time and place as the MySQL Conference and Expo — (well, almost the same time).

        The grand scale details:
        Sunday, April 19 2009 - Wed. April 22 2009 (the MySQL conference goes until Thursday)

        The Hyatt Regency Santa Clara
        5101 Great America Parkway
        Santa Clara, CA 95054
        USA

        Phone: (408) 200-1234
        Fax: (408) 980-3990

        The Unconference will be held in the Bayshore room (on the hotel mezzanine).

        When you make your travel plans, keep in mind that the Unconference starts with an informal games day on Sunday (see below for details). Travel information can be found on the MySQL Conference and Expo site at http://en.oreilly.com/mysql2009/public/content/hotel.

        Currently registration is free, there is no registration process, and we are working out breakfast and lunch arrangements. These details may change (there may be a nominal fee for food, getting a pass to the Expo hall may require free registration, etc), so stay tuned for further details!

        Scheduled sessions for the Unconference can be seen at http://forge.mysql.com/wiki/MySQL_Conference_and_Expo_2009. There are many unscheduled sessions at this point, which are listed below.

        On Sunday, April 19, 2009 from 12 noon until 12 midnight on the hotel mezzanine we will be having a game day. Play a game or just watch, and please bring your favorite game! People will drop in and out all day, so finding new and old friends to have dinner with will not be an issue. See the game day website to look at the list of games and add any you want to see or know you can bring.

        On Monday, April 20, 2009 from 8:30 am - 12 noon a hackfest will take place. Mark Callaghan of Google will lead folks through choosing a feature to add to MySQL, teach the important details about how to hack MySQL, and then much hacking will happen!

        From 1:30 pm - 5 pm we will feature an “Ask the Guru” session, where leading MySQL experts will be on hand to answer your questions. Ask something broad or specific, about theory or an actual use case. Want someone to look over a database schema? Optimize a query? Want to know why a certain error is occurring? Bring your questions, or just come to listen.

        On Tuesday and Wednesday, April 21-22, 2009 from 10:50 am until 6 pm there will be 6 sessions per day, at the same time as the MySQL Conference sessions. Unfortunately, during the keynote time slots on both days the Unconference will be closed. However, Unconference attendees will be able to visit the Expo hall on Wednesday, to visit booths, get swag, etc.

        Note that the Unconference sessions are not fully scheduled — there are plenty of sessions that are TBD, so that folks can sign up to speak on a topic at the conference. If you have an idea, feel free to e-mail awfief@gmail.com with your idea(s) and the time(s) you would like to present. This is not required; you can use the wiki to “sign up” for a time slot. However, I can help make sure that there are no similar conference talks at the same time, and help you refine your topic so it’s not too much for a 45-minute session.

        Currently the following workshops are in the process of being scheduled for the Unconference:

        Roland Bouman (XCDSQL Solutions / Strukton Rail, blog and blurb and Conference sessions) will be doing one workshop on “MySQL Plugins” and another on “MySQL UDF’s” (what they are, how to create them, etc).

        Ronald Bradford (42SQL, website and blog and blurb and Conference sessions) will give a session on “Setting up MySQL on Amazon Web Services” (aka, AWS, using EC2). This session will take place at 3:05 pm on Tuesday, April 21st.

        Leslie Hawthorn (Google, blog) will give a session on “Open Source for Newbies” (some time on Wed).

        Christos Kalanzis (profile) will give a session on “How to run 2 instances of Mysql on the same machine using one set of binaries” at 3:05 pm on Wednesday.

        Stewart Smith (Sun/MySQL, blog and Blurb and Conference sessions) will give a session on how different filesystems interact with MySQL.

        Morgan Tocker (blog, Blurb and Conference sessions) - “Chasing Bottlenecks” — for beginner and intermediate DBAs. From Morgan: The best way to performance tune a system is to find out what your bottlenecks are, and attacking those first. In the first part of this session, I’ll be looking at some of the issues faced with common database workloads. From there, I’ll then be showing how you can get more information out of MySQL and your Operating System to find out about your workload.

        Other topics that will happen, speakers TBD:
        Drizzle
        MySQL Cluster
        Using bzr for source control

        There will be a closing keynote at 5:15 pm on Wednesday, speaker TBD.

        During yesterday’s MySQL Connect conference, more about buy information pills so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Upgrading to MySQL 5.6 Slides

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

Video: Getting Started with Performance Schema

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

We have been experiencing intermittent Bugzilla slowness since Wednesday, allergy June 12th 2013 at 5 pm UTC (10 am US/Pacific time). We have been working throughout the weekend to pinpoint the cause of this irregular, and but noticeable, issue. The problem is performance only, there have been no reports and no evidence of data or functionality loss. We will release additional information as we have it.

Update 18 Jun 2013 18:40 pm UTC: The Phoenix chassis outage was completely unrelated to this Bugzilla slowness. Bugzilla is in a different data center and neither caused nor affected the chassis problem, and the only effect the chassis problem had was to pull resources away from figuring out and fixing the bugzilla issue.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

We have been experiencing intermittent Bugzilla slowness since Wednesday, allergy June 12th 2013 at 5 pm UTC (10 am US/Pacific time). We have been working throughout the weekend to pinpoint the cause of this irregular, and but noticeable, issue. The problem is performance only, there have been no reports and no evidence of data or functionality loss. We will release additional information as we have it.

Update 18 Jun 2013 18:40 pm UTC: The Phoenix chassis outage was completely unrelated to this Bugzilla slowness. Bugzilla is in a different data center and neither caused nor affected the chassis problem, and the only effect the chassis problem had was to pull resources away from figuring out and fixing the bugzilla issue.

Back in November, order talking about a different type of max_allowed_packet problem.

See, view an application had put data into the database, pfizer but could not retrieve it without getting max_allowed_packet. With the help of some really smart community folks (named Jesper Hansen, Brandon Johnson and Shane Bester), we determined that MySQL actually has 2 different max_allowed_packet settings: client and server.

When you change the max_allowed_packet variable, you are changing the server variable if it is in [mysqld] and the client variable if it is in [client] or [mysql] or whatever client you have. As far as we can tell, there’s no way to actually view what the client variable is, as looking at both the session and global max_allowed_packet variable shows you the server variable.

If max_allowed_packet is not set by the client, it defaults to 16M. The proposed solution is to allow it to be increased for non-interactive clients, and the bug has been verified as a “feature request”, though it has not been implemented yet.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

We have been experiencing intermittent Bugzilla slowness since Wednesday, allergy June 12th 2013 at 5 pm UTC (10 am US/Pacific time). We have been working throughout the weekend to pinpoint the cause of this irregular, and but noticeable, issue. The problem is performance only, there have been no reports and no evidence of data or functionality loss. We will release additional information as we have it.

Update 18 Jun 2013 18:40 pm UTC: The Phoenix chassis outage was completely unrelated to this Bugzilla slowness. Bugzilla is in a different data center and neither caused nor affected the chassis problem, and the only effect the chassis problem had was to pull resources away from figuring out and fixing the bugzilla issue.

Back in November, order talking about a different type of max_allowed_packet problem.

See, view an application had put data into the database, pfizer but could not retrieve it without getting max_allowed_packet. With the help of some really smart community folks (named Jesper Hansen, Brandon Johnson and Shane Bester), we determined that MySQL actually has 2 different max_allowed_packet settings: client and server.

When you change the max_allowed_packet variable, you are changing the server variable if it is in [mysqld] and the client variable if it is in [client] or [mysql] or whatever client you have. As far as we can tell, there’s no way to actually view what the client variable is, as looking at both the session and global max_allowed_packet variable shows you the server variable.

If max_allowed_packet is not set by the client, it defaults to 16M. The proposed solution is to allow it to be increased for non-interactive clients, and the bug has been verified as a “feature request”, though it has not been implemented yet.

I was playing around with MySQL Workbench earlier in the week, site so they are more readable.

Here is a typical complex query that looks pretty good formatted in the results from a performance schema query:
query from performance schema

Simply click the “broom” icon and watch as your SQL is cleaned up, doctor with one field in the SELECT per line and the JOINs indented and formatted prettily:
nicer, cleaned up SQL

Pretty cool, for just the click of a button!

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

We have been experiencing intermittent Bugzilla slowness since Wednesday, allergy June 12th 2013 at 5 pm UTC (10 am US/Pacific time). We have been working throughout the weekend to pinpoint the cause of this irregular, and but noticeable, issue. The problem is performance only, there have been no reports and no evidence of data or functionality loss. We will release additional information as we have it.

Update 18 Jun 2013 18:40 pm UTC: The Phoenix chassis outage was completely unrelated to this Bugzilla slowness. Bugzilla is in a different data center and neither caused nor affected the chassis problem, and the only effect the chassis problem had was to pull resources away from figuring out and fixing the bugzilla issue.

Back in November, order talking about a different type of max_allowed_packet problem.

See, view an application had put data into the database, pfizer but could not retrieve it without getting max_allowed_packet. With the help of some really smart community folks (named Jesper Hansen, Brandon Johnson and Shane Bester), we determined that MySQL actually has 2 different max_allowed_packet settings: client and server.

When you change the max_allowed_packet variable, you are changing the server variable if it is in [mysqld] and the client variable if it is in [client] or [mysql] or whatever client you have. As far as we can tell, there’s no way to actually view what the client variable is, as looking at both the session and global max_allowed_packet variable shows you the server variable.

If max_allowed_packet is not set by the client, it defaults to 16M. The proposed solution is to allow it to be increased for non-interactive clients, and the bug has been verified as a “feature request”, though it has not been implemented yet.

I was playing around with MySQL Workbench earlier in the week, site so they are more readable.

Here is a typical complex query that looks pretty good formatted in the results from a performance schema query:
query from performance schema

Simply click the “broom” icon and watch as your SQL is cleaned up, doctor with one field in the SELECT per line and the JOINs indented and formatted prettily:
nicer, cleaned up SQL

Pretty cool, for just the click of a button!

It has been over a year since the last OurSQL podcast. First, pharmacist .

But enough about the past…..In this first Drizzle podcast, Jay Pipes and I talk about what Drizzle is and how Drizzle is different from MySQL both technically and from a community standpoint.

The podcast can be downloaded (5.76 Mb as an mp3 file) or played right through your browser at http://technocation.org/content/drizzle-podcast-%25231. The show notes are also on that page.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

We have been experiencing intermittent Bugzilla slowness since Wednesday, allergy June 12th 2013 at 5 pm UTC (10 am US/Pacific time). We have been working throughout the weekend to pinpoint the cause of this irregular, and but noticeable, issue. The problem is performance only, there have been no reports and no evidence of data or functionality loss. We will release additional information as we have it.

Update 18 Jun 2013 18:40 pm UTC: The Phoenix chassis outage was completely unrelated to this Bugzilla slowness. Bugzilla is in a different data center and neither caused nor affected the chassis problem, and the only effect the chassis problem had was to pull resources away from figuring out and fixing the bugzilla issue.

Back in November, order talking about a different type of max_allowed_packet problem.

See, view an application had put data into the database, pfizer but could not retrieve it without getting max_allowed_packet. With the help of some really smart community folks (named Jesper Hansen, Brandon Johnson and Shane Bester), we determined that MySQL actually has 2 different max_allowed_packet settings: client and server.

When you change the max_allowed_packet variable, you are changing the server variable if it is in [mysqld] and the client variable if it is in [client] or [mysql] or whatever client you have. As far as we can tell, there’s no way to actually view what the client variable is, as looking at both the session and global max_allowed_packet variable shows you the server variable.

If max_allowed_packet is not set by the client, it defaults to 16M. The proposed solution is to allow it to be increased for non-interactive clients, and the bug has been verified as a “feature request”, though it has not been implemented yet.

I was playing around with MySQL Workbench earlier in the week, site so they are more readable.

Here is a typical complex query that looks pretty good formatted in the results from a performance schema query:
query from performance schema

Simply click the “broom” icon and watch as your SQL is cleaned up, doctor with one field in the SELECT per line and the JOINs indented and formatted prettily:
nicer, cleaned up SQL

Pretty cool, for just the click of a button!

It has been over a year since the last OurSQL podcast. First, pharmacist .

But enough about the past…..In this first Drizzle podcast, Jay Pipes and I talk about what Drizzle is and how Drizzle is different from MySQL both technically and from a community standpoint.

The podcast can be downloaded (5.76 Mb as an mp3 file) or played right through your browser at http://technocation.org/content/drizzle-podcast-%25231. The show notes are also on that page.

I have been talking more and more with colleagues about the Open Source community and licenses. “People with bad intentions will do bad things . . . often regardless of the license on the work.”

And, breast license, approved it is still possible for my work to be plagiarized, and if it is, I will still feel violated.

Many of us who use Creative Commons or MySQL have an Open Source mentality. We often do not see value in pirating software—why would we use Microsoft Word (a legally licensed copy, or pirated) if we can use OpenOffice or NeoOffice?

In the same manner as Steal This Book, we rebel. But instead of stealing, we make things with less restrictive licenses, so that we can give them away for free, and so that people don’t bear the stigma of having to steal to get what they should rightfully have (good, accessible software). We encourage feed aggregators such as planetmysql to re-use our content.

Of course, we believe that just because we are “long-haired sandal-wearing hippies”, everyone else involved in Open Source is, too. Much as the preface to Steal This Book asserts, we believe:

Our moral dictionary says no heisting from each other. To steal from a brother or sister is evil.

So it surprises me when I encounter people in an Open Source community who have, in fact, stolen from others in their own community. It’s so easy to not steal, that I am amazed that there are people who actually go out of their way to steal on purpose.

According to Wikipedia, “Plagiarism is the use or close imitation of the language and ideas of another author and representation of them as one’s own original work.” For example, had I not quoted Wikipedia as the source of the definition, and just stated the definition without any citation, I would have committed an act of plagiarism.

Had I done the same with the MySQL Manual, I would be guilty also of plagiarism and copyright infringement, because the MySQL Manual is copyrighted; permission to use the material in the MySQL Manual must be granted.

Arjen Lentz wrote an article about MySQL AB’s expected employee principles, and asked what people would add to the list. Included on the list is, “Aim to be good citizens.”

Good citizens do not steal or plagiarize. Good citizens treat others how they themselves want to be treated, and this goes beyond stealing and plagiarism—if someone hurts or maligns him or her, good citizens will keep on doing what they’re doing. Hate and vengeance have no place in their hearts. To (probably misquote) Sun Tzu: “Never explain. Your friends do not need it, and your enemies will not believe it anyway.”

The points I am trying to drive home are that a good citizen is not merely someone who adds value to the community; a good citizen also does not detract from the community by stealing, plagiarizing, or spreading hate.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

We have been experiencing intermittent Bugzilla slowness since Wednesday, allergy June 12th 2013 at 5 pm UTC (10 am US/Pacific time). We have been working throughout the weekend to pinpoint the cause of this irregular, and but noticeable, issue. The problem is performance only, there have been no reports and no evidence of data or functionality loss. We will release additional information as we have it.

Update 18 Jun 2013 18:40 pm UTC: The Phoenix chassis outage was completely unrelated to this Bugzilla slowness. Bugzilla is in a different data center and neither caused nor affected the chassis problem, and the only effect the chassis problem had was to pull resources away from figuring out and fixing the bugzilla issue.

Back in November, order talking about a different type of max_allowed_packet problem.

See, view an application had put data into the database, pfizer but could not retrieve it without getting max_allowed_packet. With the help of some really smart community folks (named Jesper Hansen, Brandon Johnson and Shane Bester), we determined that MySQL actually has 2 different max_allowed_packet settings: client and server.

When you change the max_allowed_packet variable, you are changing the server variable if it is in [mysqld] and the client variable if it is in [client] or [mysql] or whatever client you have. As far as we can tell, there’s no way to actually view what the client variable is, as looking at both the session and global max_allowed_packet variable shows you the server variable.

If max_allowed_packet is not set by the client, it defaults to 16M. The proposed solution is to allow it to be increased for non-interactive clients, and the bug has been verified as a “feature request”, though it has not been implemented yet.

I was playing around with MySQL Workbench earlier in the week, site so they are more readable.

Here is a typical complex query that looks pretty good formatted in the results from a performance schema query:
query from performance schema

Simply click the “broom” icon and watch as your SQL is cleaned up, doctor with one field in the SELECT per line and the JOINs indented and formatted prettily:
nicer, cleaned up SQL

Pretty cool, for just the click of a button!

It has been over a year since the last OurSQL podcast. First, pharmacist .

But enough about the past…..In this first Drizzle podcast, Jay Pipes and I talk about what Drizzle is and how Drizzle is different from MySQL both technically and from a community standpoint.

The podcast can be downloaded (5.76 Mb as an mp3 file) or played right through your browser at http://technocation.org/content/drizzle-podcast-%25231. The show notes are also on that page.

I have been talking more and more with colleagues about the Open Source community and licenses. “People with bad intentions will do bad things . . . often regardless of the license on the work.”

And, breast license, approved it is still possible for my work to be plagiarized, and if it is, I will still feel violated.

Many of us who use Creative Commons or MySQL have an Open Source mentality. We often do not see value in pirating software—why would we use Microsoft Word (a legally licensed copy, or pirated) if we can use OpenOffice or NeoOffice?

In the same manner as Steal This Book, we rebel. But instead of stealing, we make things with less restrictive licenses, so that we can give them away for free, and so that people don’t bear the stigma of having to steal to get what they should rightfully have (good, accessible software). We encourage feed aggregators such as planetmysql to re-use our content.

Of course, we believe that just because we are “long-haired sandal-wearing hippies”, everyone else involved in Open Source is, too. Much as the preface to Steal This Book asserts, we believe:

Our moral dictionary says no heisting from each other. To steal from a brother or sister is evil.

So it surprises me when I encounter people in an Open Source community who have, in fact, stolen from others in their own community. It’s so easy to not steal, that I am amazed that there are people who actually go out of their way to steal on purpose.

According to Wikipedia, “Plagiarism is the use or close imitation of the language and ideas of another author and representation of them as one’s own original work.” For example, had I not quoted Wikipedia as the source of the definition, and just stated the definition without any citation, I would have committed an act of plagiarism.

Had I done the same with the MySQL Manual, I would be guilty also of plagiarism and copyright infringement, because the MySQL Manual is copyrighted; permission to use the material in the MySQL Manual must be granted.

Arjen Lentz wrote an article about MySQL AB’s expected employee principles, and asked what people would add to the list. Included on the list is, “Aim to be good citizens.”

Good citizens do not steal or plagiarize. Good citizens treat others how they themselves want to be treated, and this goes beyond stealing and plagiarism—if someone hurts or maligns him or her, good citizens will keep on doing what they’re doing. Hate and vengeance have no place in their hearts. To (probably misquote) Sun Tzu: “Never explain. Your friends do not need it, and your enemies will not believe it anyway.”

The points I am trying to drive home are that a good citizen is not merely someone who adds value to the community; a good citizen also does not detract from the community by stealing, plagiarizing, or spreading hate.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, resuscitation including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

I am about to give a talk at MySQL Connect about what you need to know before upgrading to MySQL 5.6.

The PDF slides are online at http://bit.ly/upgrade56. I will be posting a video in the next few weeks!

The 3rd season of MySQL Marinate begins October 1st, information pills or if you prefer, price MariaDB or Percona.

If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” on the O’Reilly book page for Learning MySQL. There is homework for week 1, see the master list for all the information.

If you would like to learn MySQL from the ground up, consider joining us. This is for beginners – If you have no experience with MySQL, or if you are a developer that wants to learn how to administer MySQL, or an administrator that wants to learn how to query MySQL, this course is what you want.

If you are not a beginner, you are welcome to join too – maybe you need a refresher, or maybe you just want to test your knowledge or earn badges. That’s OK too!

The format of a virtual self-study group is as follows:

Each participant acquires the same textbook (Learning MySQL, the “butterfly O’Reilly book”, published 2007). You can acquire the textbook however you want (e.g. from the libary or from a friend) but if you buy the book, we ask that you buy it from our Amazon Store, to help pay for meetup fees.

Each participant commits to read one chapter per week, complete the exercises and post a link to the completed work. Tweet using the hashtag #mysqlmarinate.

Each participant obtains assistance by posting questions to a discussion area set up on the Virtual Tech Self Study Message Board for each chapter.

Each participant receives a badge upon finishing each chapter and all assignments.

Note: There is no classroom or video instruction.

How do I get started?

Become a member of the Virtual Tech Self Study Meetup Group.

Register for MySQL Marinate. RSVP to this event: Yes

Acquire the book (the only item that may cost money). Get your hands Learning MySQL – see if your local library has it, if someone is selling their copy, or buy it from our Amazon Store (this helps pay for meetup fees).

When your book arrives, start your virtual learning by reading one chapter per week. Complete the exercises; if you have any questions, comments or want to learn more in-depth, that’s what the forums are for!

Learning MySQL

FAQs:

Q: How long will the course last?

A: We will cover 12 lessons (chapters) in the book, so 12 (twelve) weeks starting October 1st, though we will have one week that is a break so that you can catch up if you need to or you have a week off if you need it. Refer to the MySQL Marinate Season 3 Master Discussion List for specific dates.

By January 1st, 2014, you will know MySQL!!

Q: Can I get ahead?

A: Sure! This is go-at-your-own-pace. To prevent spoilers, please put comments in the appropriate chapter threads.

Q: Does this cover the Percona patch set or MariaDB forks?

A: This covers the basics of MySQL, which are immediately transferable to Percona’s patched MySQL or MariaDB builds.

Q: What do I need in order to start the course?

A: All you need is the book and access to a computer, preferably one that you have control over. Installing MySQL is chapter 2, so really, all you need is the book and a computer to start, you don’t have to worry about any prerequisites. If you do not have the book yet, you can still do the first week by using the online material from “Browse Contents” at the O’Reilly Learning MySQL page.

Q: Where can I put completed assignments?

A: You will be able to put completed assignments on github. Instructions are in week 1.

Q: The book was published in 2007. Isn’t that a bit old?

A: Yes! O’Reilly is working on new material, but it is not ready yet. The basics are still accurate, and we will let you know what in the book is outdated. We will also have optional supplemental/”extra credit” material for those who want to learn more right away. We are confident that this self-study course will make you ready to dive into other, more advanced material.

Soak it in!

*either tomorrow or today, depending on when and where you read this. Or it was in the past, if you have to catch up on your blog posts. It’s OK, you can join us late, too. You can go at your own pace.

During yesterday’s MySQL Connect conference, viagra so that all can benefit. The slides for the talk are at http://bit.ly/puppet-mysql-slides.

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, human enhancement so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, drug I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, visit this site if you want to know more:
MySQL indexes are often used to make performance better. However, more about they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, pilule and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, rubella including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

We have been experiencing intermittent Bugzilla slowness since Wednesday, allergy June 12th 2013 at 5 pm UTC (10 am US/Pacific time). We have been working throughout the weekend to pinpoint the cause of this irregular, and but noticeable, issue. The problem is performance only, there have been no reports and no evidence of data or functionality loss. We will release additional information as we have it.

Update 18 Jun 2013 18:40 pm UTC: The Phoenix chassis outage was completely unrelated to this Bugzilla slowness. Bugzilla is in a different data center and neither caused nor affected the chassis problem, and the only effect the chassis problem had was to pull resources away from figuring out and fixing the bugzilla issue.

Back in November, order talking about a different type of max_allowed_packet problem.

See, view an application had put data into the database, pfizer but could not retrieve it without getting max_allowed_packet. With the help of some really smart community folks (named Jesper Hansen, Brandon Johnson and Shane Bester), we determined that MySQL actually has 2 different max_allowed_packet settings: client and server.

When you change the max_allowed_packet variable, you are changing the server variable if it is in [mysqld] and the client variable if it is in [client] or [mysql] or whatever client you have. As far as we can tell, there’s no way to actually view what the client variable is, as looking at both the session and global max_allowed_packet variable shows you the server variable.

If max_allowed_packet is not set by the client, it defaults to 16M. The proposed solution is to allow it to be increased for non-interactive clients, and the bug has been verified as a “feature request”, though it has not been implemented yet.

I was playing around with MySQL Workbench earlier in the week, site so they are more readable.

Here is a typical complex query that looks pretty good formatted in the results from a performance schema query:
query from performance schema

Simply click the “broom” icon and watch as your SQL is cleaned up, doctor with one field in the SELECT per line and the JOINs indented and formatted prettily:
nicer, cleaned up SQL

Pretty cool, for just the click of a button!

It has been over a year since the last OurSQL podcast. First, pharmacist .

But enough about the past…..In this first Drizzle podcast, Jay Pipes and I talk about what Drizzle is and how Drizzle is different from MySQL both technically and from a community standpoint.

The podcast can be downloaded (5.76 Mb as an mp3 file) or played right through your browser at http://technocation.org/content/drizzle-podcast-%25231. The show notes are also on that page.

I have been talking more and more with colleagues about the Open Source community and licenses. “People with bad intentions will do bad things . . . often regardless of the license on the work.”

And, breast license, approved it is still possible for my work to be plagiarized, and if it is, I will still feel violated.

Many of us who use Creative Commons or MySQL have an Open Source mentality. We often do not see value in pirating software—why would we use Microsoft Word (a legally licensed copy, or pirated) if we can use OpenOffice or NeoOffice?

In the same manner as Steal This Book, we rebel. But instead of stealing, we make things with less restrictive licenses, so that we can give them away for free, and so that people don’t bear the stigma of having to steal to get what they should rightfully have (good, accessible software). We encourage feed aggregators such as planetmysql to re-use our content.

Of course, we believe that just because we are “long-haired sandal-wearing hippies”, everyone else involved in Open Source is, too. Much as the preface to Steal This Book asserts, we believe:

Our moral dictionary says no heisting from each other. To steal from a brother or sister is evil.

So it surprises me when I encounter people in an Open Source community who have, in fact, stolen from others in their own community. It’s so easy to not steal, that I am amazed that there are people who actually go out of their way to steal on purpose.

According to Wikipedia, “Plagiarism is the use or close imitation of the language and ideas of another author and representation of them as one’s own original work.” For example, had I not quoted Wikipedia as the source of the definition, and just stated the definition without any citation, I would have committed an act of plagiarism.

Had I done the same with the MySQL Manual, I would be guilty also of plagiarism and copyright infringement, because the MySQL Manual is copyrighted; permission to use the material in the MySQL Manual must be granted.

Arjen Lentz wrote an article about MySQL AB’s expected employee principles, and asked what people would add to the list. Included on the list is, “Aim to be good citizens.”

Good citizens do not steal or plagiarize. Good citizens treat others how they themselves want to be treated, and this goes beyond stealing and plagiarism—if someone hurts or maligns him or her, good citizens will keep on doing what they’re doing. Hate and vengeance have no place in their hearts. To (probably misquote) Sun Tzu: “Never explain. Your friends do not need it, and your enemies will not believe it anyway.”

The points I am trying to drive home are that a good citizen is not merely someone who adds value to the community; a good citizen also does not detract from the community by stealing, plagiarizing, or spreading hate.

One of the chassis in the PHX1 datacenter was experiencing issues which took many services, resuscitation including those on the generic web cluster offline and degraded others for approximately half an hour. Fixing the issue took approximately 15 minutes. Services should be back to normal.

For reference, the following web services were either downgraded, or unavailable:

generic cluster (contains many web apps)

bouncer
elasticsearch
etherpad
graphite
hangprocessor
input
input-celery
openshift
plugins and plugins memcached
puppetmaster
rabbit
socorro memcache

If you have any questions or concerns please address them to helpdesk@mozilla.com.

We have been experiencing intermittent Bugzilla slowness since Wednesday, look June 12th 2013 at 5 pm UTC (10 am US/Pacific time). We have been working throughout the weekend to pinpoint the cause of this irregular, food but noticeable, abortion issue. The problem is performance only, there have been no reports and no evidence of data or functionality loss. We will release additional information as we have it.

Update 18 Jun 2013 18:40 pm UTC: The Phoenix chassis outage was completely unrelated to this Bugzilla slowness. Bugzilla is in a different data center and neither caused nor affected the chassis problem, and the only effect the chassis problem had was to pull resources away from figuring out and fixing the bugzilla issue.

I do not recall seeing an announcement about it, psychotherapist diagnosis but I went looking for the videos today and lo and behold, medicine they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

2013 SkySQL and MariaDB Solutions Day for the MySQL Database videos

Recently I gave a new talk to both the Tokyo and Boston MySQL User Groups about how to get started using performance schema. I have put some resources online for those interested:

Performance Schema talk video

PDF slides

The feedback has been excellent, diagnosis unhealthy so I hope that you find this video useful when trying to learn how to use performance schema and dive into the depth of the information it provides you.

Indexing Talk Online

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

2013 SkySQL and MariaDB Solutions Videos Are Online!

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

This year’s Oracle Open World is taking place from October 11-15th, neurosurgeon 2009 at the Moscone Center in San Francisco, internist CA. Paul Vallee noted that Oracle’s acquisition of Sun means that Open World will probably want a MySQL track, pharm and Matt Yonkovit of Big DBA Head mentioned that a blog post on it would spread the word.

The Call for Presentations closes April 26th, which is in just 3 days. You can find out more and submit presentations at http://tinyurl.com/oow09prop. I spoke at Oracle Open World last year on “How to Be an Oracle ACE” and attending the conference was pretty mind-blowing.

If you do submit a talk, feel free to comment here with the title so we can get a broad range of topics submitted, not just 100 speakers submitting “MySQL for the Oracle DBA”.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

This year’s Oracle Open World is taking place from October 11-15th, neurosurgeon 2009 at the Moscone Center in San Francisco, internist CA. Paul Vallee noted that Oracle’s acquisition of Sun means that Open World will probably want a MySQL track, pharm and Matt Yonkovit of Big DBA Head mentioned that a blog post on it would spread the word.

The Call for Presentations closes April 26th, which is in just 3 days. You can find out more and submit presentations at http://tinyurl.com/oow09prop. I spoke at Oracle Open World last year on “How to Be an Oracle ACE” and attending the conference was pretty mind-blowing.

If you do submit a talk, feel free to comment here with the title so we can get a broad range of topics submitted, not just 100 speakers submitting “MySQL for the Oracle DBA”.

Slides:
http://www.technocation.org/files/doc/2009Keynote.pdf

References:
I am @sheeri on twitter
My blog is at http://pythian.com/blogs/author/sheeri
My e-mail is cabral@pythian.com

Pythian became the first ever Sun Enterprise Remote DBA Partner — read the details at http://tinyurl.com/pythiansun.

Technocation, hospital videos and audio files. Their website is and you can e-mail them at info@technocation.org Technocation, symptoms Inc. is a 501(c) not-for-profit US corporation dedicated to providing educational resources for IT professionals.

http://planet.mysql.com has an aggregate of blog feeds relating to MySQL.

How to start a MySQL User Group

How to run a successful User Group

You can get your own free blog at www.blogspot.com or www.blogger.com.

The MySQL Forge Wiki is at http://forge.mysql.com/wiki. MySQL Forums are at http://forums.mysql.com and the mailing lists can be found at http://lists.mysql.com.

My mistake: http://sheeri.com/archives/13 and my response at http://sheeri.com/archives/14.

Wednesday conference material for you to edit and add notes and links to: http://forge.mysql.com/wiki/MySQLConf2009WednesdayNotes.

And a link to yesterday’s page, so you can edit that too: http://forge.mysql.com/wiki/MySQLConf2009TuesdayNotes.

And just for fun, a link to tomorrow’s page: http://forge.mysql.com/wiki/MySQLConf2009ThursdayNotes.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

This year’s Oracle Open World is taking place from October 11-15th, neurosurgeon 2009 at the Moscone Center in San Francisco, internist CA. Paul Vallee noted that Oracle’s acquisition of Sun means that Open World will probably want a MySQL track, pharm and Matt Yonkovit of Big DBA Head mentioned that a blog post on it would spread the word.

The Call for Presentations closes April 26th, which is in just 3 days. You can find out more and submit presentations at http://tinyurl.com/oow09prop. I spoke at Oracle Open World last year on “How to Be an Oracle ACE” and attending the conference was pretty mind-blowing.

If you do submit a talk, feel free to comment here with the title so we can get a broad range of topics submitted, not just 100 speakers submitting “MySQL for the Oracle DBA”.

Slides:
http://www.technocation.org/files/doc/2009Keynote.pdf

References:
I am @sheeri on twitter
My blog is at http://pythian.com/blogs/author/sheeri
My e-mail is cabral@pythian.com

Pythian became the first ever Sun Enterprise Remote DBA Partner — read the details at http://tinyurl.com/pythiansun.

Technocation, hospital videos and audio files. Their website is and you can e-mail them at info@technocation.org Technocation, symptoms Inc. is a 501(c) not-for-profit US corporation dedicated to providing educational resources for IT professionals.

http://planet.mysql.com has an aggregate of blog feeds relating to MySQL.

How to start a MySQL User Group

How to run a successful User Group

You can get your own free blog at www.blogspot.com or www.blogger.com.

The MySQL Forge Wiki is at http://forge.mysql.com/wiki. MySQL Forums are at http://forums.mysql.com and the mailing lists can be found at http://lists.mysql.com.

My mistake: http://sheeri.com/archives/13 and my response at http://sheeri.com/archives/14.

Wednesday conference material for you to edit and add notes and links to: http://forge.mysql.com/wiki/MySQLConf2009WednesdayNotes.

And a link to yesterday’s page, so you can edit that too: http://forge.mysql.com/wiki/MySQLConf2009TuesdayNotes.

And just for fun, a link to tomorrow’s page: http://forge.mysql.com/wiki/MySQLConf2009ThursdayNotes.

All the sessions for all the MySQL Camp days can be seen at, sales on the mezzanine level of the hotel):


Tuesday 10:50 am – 11:35 pm

Matt Yonkovit (Sun/MySQL, cardiologist Waffle Grid, side effects Big DBA Head, [blog]) presents Learning from others’ MySQL Performance Mistakes. Matt has spent the last couple of years helping customers who are all dealing with the same MySQL related problems over and over again. During this session he will give you some of the most common issues in MySQL deployments he sees on a day to day basis, and how to fix or avoid them. These include:

* More is not always better
* Text Fields are not cool
* Data Size does matter
* Fun with Data Conversions
* Its all about IO
* Left join love
* Self Induced fragmentations
* MySQL is not Oracle

and more!!!! Come and join the fun.

Tuesday 11:55 am – 12:35 pm

Intro to XtraDB, a Scalable InnoDB-based Storage Engine Ewen Fortune (Percona)

XtraDB is a storage engine for MySQL based on the InnoDB storage engine, designed to better scale on modern hardware, and including a variety of other features useful in high performance environments. It is fully backwards compatible, and so can be used as a drop-in replacement for standard InnoDB.

XtraDB includes all of InnoDB’s robust, reliable ACID-compliant design and advanced MVCC architecture, and builds on that solid foundation with more features, more tunability, more metrics, and more scalability. In particular, it is designed to scale better on many cores, to use memory more efficiently, and to be more convenient and useful. The new features are especially designed to alleviate some of InnoDB’s limitations. Vadim will talk about current status of XtraDB and directions of development.

LUNCH BREAK

Tuesday 2:00 pm – 2:45 pm

Roland Bouman will present a session on Grand Tour of the Information Schema and its Applications

The following topics will be covered:

Introduction of the information schema and it’s components

How to generate WIKI documentation from the information schema

Generating code (triggers, SPs) to maintain a rich history database

Creating a stored procedure to check violated foreign key constraints

Creating a stored procedure to create federated tables

Tuesday 3:05 pm – 3:50 pm

Setting up MySQL on Amazon Web Services (AWS)

Ronald Bradford, Principal at 42SQL will step you though getting started with AWS.

This introduction will assume you no nothing about AWS, and have no account. With Internet access via a Browser and a valid Credit Card, you can have your own running Web Server on the Internet in under 10 minutes, just point and click.

We will step into some more detail using the supplied command line tools for more advanced usage.

Tuesday 4:25 pm – 5:10 pm

Yves Trudeau (Sun/MySQL, Waffle Grid, Big DBA Head ) presents NBD (MySQL Cluster) performance tuning and pitfalls. In the recent months Yves has worked on many NDB Cluster engagements and come through many unusual situations that are relevant to people interested in NDB Cluster. Here is a brief list of the topics to be covered:

* Identifying bottleneck
* Minimizing disk footprint
* Minimizing latency (logger type application)
* Realtime options
* Using CPUs efficiently
* The e1000 pitfall

Tuesday 5:15 pm – 6:00 pm

InnoDB Database Recovery Techniques

Peter Zaitsev (Percona)

Have you ever had Innodb database corrupted or have deleted data accidentally and want it back ? This session will go through various approaches you can use to get most of your data back using MySQL build in features as well as third party open source tool.

This session speaks about Innodb database recovery techniques (apart from recovering from back).

First we will discuss various types of Innodb corruption and data loss scenarios ranging from user error to hardware failures.

Then we will look at Innodb storage data structure to see what foundations does it has for corruption discovery and recovery.

Then we will go into approaches one can use to recover data including:

* Recovering Innodb dictionary running our of sync with .idb files
* Recovering minor corruptions using innodb_force_recovery and build-in MySQL Features
* Recovering deleted data and dropped tables using Innodb Recovery Tools package
* Dealing with complex data loss scenarios such as failed filesystem or failed RAID subsystem.

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

This year’s Oracle Open World is taking place from October 11-15th, neurosurgeon 2009 at the Moscone Center in San Francisco, internist CA. Paul Vallee noted that Oracle’s acquisition of Sun means that Open World will probably want a MySQL track, pharm and Matt Yonkovit of Big DBA Head mentioned that a blog post on it would spread the word.

The Call for Presentations closes April 26th, which is in just 3 days. You can find out more and submit presentations at http://tinyurl.com/oow09prop. I spoke at Oracle Open World last year on “How to Be an Oracle ACE” and attending the conference was pretty mind-blowing.

If you do submit a talk, feel free to comment here with the title so we can get a broad range of topics submitted, not just 100 speakers submitting “MySQL for the Oracle DBA”.

Slides:
http://www.technocation.org/files/doc/2009Keynote.pdf

References:
I am @sheeri on twitter
My blog is at http://pythian.com/blogs/author/sheeri
My e-mail is cabral@pythian.com

Pythian became the first ever Sun Enterprise Remote DBA Partner — read the details at http://tinyurl.com/pythiansun.

Technocation, hospital videos and audio files. Their website is and you can e-mail them at info@technocation.org Technocation, symptoms Inc. is a 501(c) not-for-profit US corporation dedicated to providing educational resources for IT professionals.

http://planet.mysql.com has an aggregate of blog feeds relating to MySQL.

How to start a MySQL User Group

How to run a successful User Group

You can get your own free blog at www.blogspot.com or www.blogger.com.

The MySQL Forge Wiki is at http://forge.mysql.com/wiki. MySQL Forums are at http://forums.mysql.com and the mailing lists can be found at http://lists.mysql.com.

My mistake: http://sheeri.com/archives/13 and my response at http://sheeri.com/archives/14.

Wednesday conference material for you to edit and add notes and links to: http://forge.mysql.com/wiki/MySQLConf2009WednesdayNotes.

And a link to yesterday’s page, so you can edit that too: http://forge.mysql.com/wiki/MySQLConf2009TuesdayNotes.

And just for fun, a link to tomorrow’s page: http://forge.mysql.com/wiki/MySQLConf2009ThursdayNotes.

All the sessions for all the MySQL Camp days can be seen at, sales on the mezzanine level of the hotel):


Tuesday 10:50 am – 11:35 pm

Matt Yonkovit (Sun/MySQL, cardiologist Waffle Grid, side effects Big DBA Head, [blog]) presents Learning from others’ MySQL Performance Mistakes. Matt has spent the last couple of years helping customers who are all dealing with the same MySQL related problems over and over again. During this session he will give you some of the most common issues in MySQL deployments he sees on a day to day basis, and how to fix or avoid them. These include:

* More is not always better
* Text Fields are not cool
* Data Size does matter
* Fun with Data Conversions
* Its all about IO
* Left join love
* Self Induced fragmentations
* MySQL is not Oracle

and more!!!! Come and join the fun.

Tuesday 11:55 am – 12:35 pm

Intro to XtraDB, a Scalable InnoDB-based Storage Engine Ewen Fortune (Percona)

XtraDB is a storage engine for MySQL based on the InnoDB storage engine, designed to better scale on modern hardware, and including a variety of other features useful in high performance environments. It is fully backwards compatible, and so can be used as a drop-in replacement for standard InnoDB.

XtraDB includes all of InnoDB’s robust, reliable ACID-compliant design and advanced MVCC architecture, and builds on that solid foundation with more features, more tunability, more metrics, and more scalability. In particular, it is designed to scale better on many cores, to use memory more efficiently, and to be more convenient and useful. The new features are especially designed to alleviate some of InnoDB’s limitations. Vadim will talk about current status of XtraDB and directions of development.

LUNCH BREAK

Tuesday 2:00 pm – 2:45 pm

Roland Bouman will present a session on Grand Tour of the Information Schema and its Applications

The following topics will be covered:

Introduction of the information schema and it’s components

How to generate WIKI documentation from the information schema

Generating code (triggers, SPs) to maintain a rich history database

Creating a stored procedure to check violated foreign key constraints

Creating a stored procedure to create federated tables

Tuesday 3:05 pm – 3:50 pm

Setting up MySQL on Amazon Web Services (AWS)

Ronald Bradford, Principal at 42SQL will step you though getting started with AWS.

This introduction will assume you no nothing about AWS, and have no account. With Internet access via a Browser and a valid Credit Card, you can have your own running Web Server on the Internet in under 10 minutes, just point and click.

We will step into some more detail using the supplied command line tools for more advanced usage.

Tuesday 4:25 pm – 5:10 pm

Yves Trudeau (Sun/MySQL, Waffle Grid, Big DBA Head ) presents NBD (MySQL Cluster) performance tuning and pitfalls. In the recent months Yves has worked on many NDB Cluster engagements and come through many unusual situations that are relevant to people interested in NDB Cluster. Here is a brief list of the topics to be covered:

* Identifying bottleneck
* Minimizing disk footprint
* Minimizing latency (logger type application)
* Realtime options
* Using CPUs efficiently
* The e1000 pitfall

Tuesday 5:15 pm – 6:00 pm

InnoDB Database Recovery Techniques

Peter Zaitsev (Percona)

Have you ever had Innodb database corrupted or have deleted data accidentally and want it back ? This session will go through various approaches you can use to get most of your data back using MySQL build in features as well as third party open source tool.

This session speaks about Innodb database recovery techniques (apart from recovering from back).

First we will discuss various types of Innodb corruption and data loss scenarios ranging from user error to hardware failures.

Then we will look at Innodb storage data structure to see what foundations does it has for corruption discovery and recovery.

Then we will go into approaches one can use to recover data including:

* Recovering Innodb dictionary running our of sync with .idb files
* Recovering minor corruptions using innodb_force_recovery and build-in MySQL Features
* Recovering deleted data and dropped tables using Innodb Recovery Tools package
* Dealing with complex data loss scenarios such as failed filesystem or failed RAID subsystem.

It’s true — http://www.nytimes.com/2009/04/21/technology/companies/21sun.html?_r=1&hp.

“What does this mean for MySQL?”

Lots of people are going to be proclaiming that it is the death of MySQL, this web as they did when Oracle bought InnoDB.

But it is not. MySQL and Oracle may both be databases, but they are not competitors. To say they are competitors is like saying that an upscale bar and the corner convenience store are competitors because you can get soft drinks, coffee and tea at both. There are many applications for which Oracle is the appropriate solution, and there’s no reason to even try to see if MySQL can do the same job. Similarly there are many applications for which MySQL is the clearly appropriate solution and there’s no need to even consider Oracle.

So, in the end, what this acquisition means to me is that Sun’s going to get a little more of a boost — stock prices had been sinking for a while now, and Oracle will get some good hardware, which seems to be their latest foray.

EDIT (4/20/2009 10:09 pm PDT) — Just adding another reason I believe Oracle won’t kill MySQL — they make a ton of $$ off InnoDB hot backup…

and the video can be directly played in your browser at http://technocation.org/node/697/play or downloaded (170Mb) at http://technocation.org/node/697/download.

I do not recall seeing an announcement about it, pancreatitis but I went looking for the videos today and lo and behold, they were up! Forgive me if I missed a post about it….but if you also missed it, here they are:

<A HREF=”http://www.skysql.com/news-and-events/events/solutions-day-2013/presentations>2013 SkySQL and MariaDB Solutions Day for the MySQL Database</A>

I am doing a quick blog post to announce that I have put an indexing talk online*. Most recently, visit web I delivered this indexing talk at Confoo and Scale 11x.

The talk is on YouTube at Are You Getting the Best Out of Your MySQL Indexes? There are also PDF slides.
From the official conference description, if you want to know more:
MySQL indexes are often used to make performance better. However, they can make performance suffer if you are not using them properly. Oracle ACE Director Sheeri Cabral explains the pitfalls to avoid with indexes and how to utilize compound indexes to maximize index availability with the least amount of write overhead.

*I know I have not been posting blogs for a long time. This was a very busy year, and I took March through July off from conferences in order to buy a house and move.

Some folks are reporting that some etherpads are not working after a routine database switchover. We have figured out a way to recover the last known working revision, page and have already done so for a handful of etherpads.

We are working to proactively find these etherpads and fix them, psychiatrist but if you have an etherpad that is broken that you want to call attention to, please put it in bug 894913 – https://bugzilla.mozilla.org/show_bug.cgi?id=894913.

This year’s Oracle Open World is taking place from October 11-15th, neurosurgeon 2009 at the Moscone Center in San Francisco, internist CA. Paul Vallee noted that Oracle’s acquisition of Sun means that Open World will probably want a MySQL track, pharm and Matt Yonkovit of Big DBA Head mentioned that a blog post on it would spread the word.

The Call for Presentations closes April 26th, which is in just 3 days. You can find out more and submit presentations at http://tinyurl.com/oow09prop. I spoke at Oracle Open World last year on “How to Be an Oracle ACE” and attending the conference was pretty mind-blowing.

If you do submit a talk, feel free to comment here with the title so we can get a broad range of topics submitted, not just 100 speakers submitting “MySQL for the Oracle DBA”.

Slides:
http://www.technocation.org/files/doc/2009Keynote.pdf

References:
I am @sheeri on twitter
My blog is at http://pythian.com/blogs/author/sheeri
My e-mail is cabral@pythian.com

Pythian became the first ever Sun Enterprise Remote DBA Partner — read the details at http://tinyurl.com/pythiansun.

Technocation, hospital videos and audio files. Their website is and you can e-mail them at info@technocation.org Technocation, symptoms Inc. is a 501(c) not-for-profit US corporation dedicated to providing educational resources for IT professionals.

http://planet.mysql.com has an aggregate of blog feeds relating to MySQL.

How to start a MySQL User Group

How to run a successful User Group

You can get your own free blog at www.blogspot.com or www.blogger.com.

The MySQL Forge Wiki is at http://forge.mysql.com/wiki. MySQL Forums are at http://forums.mysql.com and the mailing lists can be found at http://lists.mysql.com.

My mistake: http://sheeri.com/archives/13 and my response at http://sheeri.com/archives/14.

Wednesday conference material for you to edit and add notes and links to: http://forge.mysql.com/wiki/MySQLConf2009WednesdayNotes.

And a link to yesterday’s page, so you can edit that too: http://forge.mysql.com/wiki/MySQLConf2009TuesdayNotes.

And just for fun, a link to tomorrow’s page: http://forge.mysql.com/wiki/MySQLConf2009ThursdayNotes.

All the sessions for all the MySQL Camp days can be seen at, sales on the mezzanine level of the hotel):


Tuesday 10:50 am – 11:35 pm

Matt Yonkovit (Sun/MySQL, cardiologist Waffle Grid, side effects Big DBA Head, [blog]) presents Learning from others’ MySQL Performance Mistakes. Matt has spent the last couple of years helping customers who are all dealing with the same MySQL related problems over and over again. During this session he will give you some of the most common issues in MySQL deployments he sees on a day to day basis, and how to fix or avoid them. These include:

* More is not always better
* Text Fields are not cool
* Data Size does matter
* Fun with Data Conversions
* Its all about IO
* Left join love
* Self Induced fragmentations
* MySQL is not Oracle

and more!!!! Come and join the fun.

Tuesday 11:55 am – 12:35 pm

Intro to XtraDB, a Scalable InnoDB-based Storage Engine Ewen Fortune (Percona)

XtraDB is a storage engine for MySQL based on the InnoDB storage engine, designed to better scale on modern hardware, and including a variety of other features useful in high performance environments. It is fully backwards compatible, and so can be used as a drop-in replacement for standard InnoDB.

XtraDB includes all of InnoDB’s robust, reliable ACID-compliant design and advanced MVCC architecture, and builds on that solid foundation with more features, more tunability, more metrics, and more scalability. In particular, it is designed to scale better on many cores, to use memory more efficiently, and to be more convenient and useful. The new features are especially designed to alleviate some of InnoDB’s limitations. Vadim will talk about current status of XtraDB and directions of development.

LUNCH BREAK

Tuesday 2:00 pm – 2:45 pm

Roland Bouman will present a session on Grand Tour of the Information Schema and its Applications

The following topics will be covered:

Introduction of the information schema and it’s components

How to generate WIKI documentation from the information schema

Generating code (triggers, SPs) to maintain a rich history database

Creating a stored procedure to check violated foreign key constraints

Creating a stored procedure to create federated tables

Tuesday 3:05 pm – 3:50 pm

Setting up MySQL on Amazon Web Services (AWS)

Ronald Bradford, Principal at 42SQL will step you though getting started with AWS.

This introduction will assume you no nothing about AWS, and have no account. With Internet access via a Browser and a valid Credit Card, you can have your own running Web Server on the Internet in under 10 minutes, just point and click.

We will step into some more detail using the supplied command line tools for more advanced usage.

Tuesday 4:25 pm – 5:10 pm

Yves Trudeau (Sun/MySQL, Waffle Grid, Big DBA Head ) presents NBD (MySQL Cluster) performance tuning and pitfalls. In the recent months Yves has worked on many NDB Cluster engagements and come through many unusual situations that are relevant to people interested in NDB Cluster. Here is a brief list of the topics to be covered:

* Identifying bottleneck
* Minimizing disk footprint
* Minimizing latency (logger type application)
* Realtime options
* Using CPUs efficiently
* The e1000 pitfall

Tuesday 5:15 pm – 6:00 pm

InnoDB Database Recovery Techniques

Peter Zaitsev (Percona)

Have you ever had Innodb database corrupted or have deleted data accidentally and want it back ? This session will go through various approaches you can use to get most of your data back using MySQL build in features as well as third party open source tool.

This session speaks about Innodb database recovery techniques (apart from recovering from back).

First we will discuss various types of Innodb corruption and data loss scenarios ranging from user error to hardware failures.

Then we will look at Innodb storage data structure to see what foundations does it has for corruption discovery and recovery.

Then we will go into approaches one can use to recover data including:

* Recovering Innodb dictionary running our of sync with .idb files
* Recovering minor corruptions using innodb_force_recovery and build-in MySQL Features
* Recovering deleted data and dropped tables using Innodb Recovery Tools package
* Dealing with complex data loss scenarios such as failed filesystem or failed RAID subsystem.

It’s true — http://www.nytimes.com/2009/04/21/technology/companies/21sun.html?_r=1&hp.

“What does this mean for MySQL?”

Lots of people are going to be proclaiming that it is the death of MySQL, this web as they did when Oracle bought InnoDB.

But it is not. MySQL and Oracle may both be databases, but they are not competitors. To say they are competitors is like saying that an upscale bar and the corner convenience store are competitors because you can get soft drinks, coffee and tea at both. There are many applications for which Oracle is the appropriate solution, and there’s no reason to even try to see if MySQL can do the same job. Similarly there are many applications for which MySQL is the clearly appropriate solution and there’s no need to even consider Oracle.

So, in the end, what this acquisition means to me is that Sun’s going to get a little more of a boost — stock prices had been sinking for a while now, and Oracle will get some good hardware, which seems to be their latest foray.

EDIT (4/20/2009 10:09 pm PDT) — Just adding another reason I believe Oracle won’t kill MySQL — they make a ton of $$ off InnoDB hot backup…

By now many folks know that :

People who are interested in forking the server — and potentially interested in creating what is in effect separate communities of their own — should probably develop their own docs for their own forks.

(There is a cost involved here, buy information pills I know. However, capsule it should be a cost worth paying if developers of forks really believe in their work. MySQL AB certainly paid that cost in developing the docs while it had already made the code itself freely available under GPL. So, sovaldi sale the playing ground among all forks, etc., and including MySQL itself, is actually quite level.)

MySQL AB paid the cost in developing the *software* as well. Why is it that the cost of writing documentation from scratch is acceptable, but the cost of writing the *software* from scratch isn’t?

I totally understand the concern that if people have the same rights to fork the documentation as they do to fork the code, confusion may arise. Many do not agree that the risk is high enough to warrant keeping the documentation “closed”. However, even if that is the case, Section 2 of GPLv2 states:

You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.

So, if Sun/MySQL[/Oracle/whatever] was *really* worried about confusion, they would publish the documentation with a GPLv2 license, and then have their legal department send cease and desist letters to anyone who modified the documentation without having a prominent notice stating that they have modified the documentation.

My question to readers is: “If the Oracle Corporation decided to close the source of MySQL, would anyone notice?”

Your first thought may be, “I was *just* reading a blog post that talked about more community contributions being accepted!” However, if you actually search around for the details of the community contributions, you will note that, as in the past, it is still taking a lot of time to QA the contributions, and even once contributions are accepted, they are not put in a release we will see any time soon. For an example, see my comment to that post, where I link to documents showing that the only piece of community code that was specific enough to find will be put into MySQL version 7.1.

Hopefully, as announced at the Partner Meeting at the recent MySQL User Conference, the roadmap won’t be frozen as it is now, and features can get into a release if they are complete (including testing and QA) within a certain timeframe.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states:
What I actually said was: I believe that a successful commercial enterprise called “MySQL” is necessary in order to create the types of opportunities that exist in the “MySQL Ecosystem” today.

So, what does having a company behind MySQL provide? To be more clear, I am specifically answering “What has MySQL and/or Sun been able to provide to the MySQL Ecosystem that was not there before?”

I would like to note that I am not making a value judgment on having a company behind MySQL.

Dean’s post tackles the generic case of “a company behind open source software” — he makes the unfortunate statement that a web server does simple tasks, thus Apache does not need a company behind it. It is plain to see that Apache has survived for over 10 years without being principally owned by a company. But all of the reasons Dean gives for MySQL needing a “mothership” are true of Apache. I could argue that databases do simple tasks too — store, process and retrieve information (hey, just like a webserver).

But that’s not my point. Having a company behind MySQL allowed MySQL to:

attract developers
have a centralized place for MySQL knowledge
write good documentation

However, having a company behind MySQL has caused problems. As I see it, there are two problems. The first is difficulty in accepting contributions back from the community. That was not because of a decision from a business person. That was, and is, because the software is full of code that does not (literally) meet up to its own standards. There is legacy code that is decades old. There is new code that has been hacked together. Legacy code and hacks were *enabled* by having a centralized place for development.

When the time came that folks wanted to decentralize, it was not easy to do so.

The second problem is that in trying to monetize MySQL, certain things were irrevocably changed.

I want to address the original statement: without the mother ship, things will fall apart and your own business will fail. Pythian offers MySQL DBA services — ongoing and emergency — and that business will not fail if there is no “mother ship”.

So, what if the company behind MySQL dissolved? A few hundred people, including some of my friends, would be out of a job. The User Conference would cease to exist, replaced by smaller conferences such as the Postgres community already has. MySQL development would have to be picked up by other people/companies. This last part has already started happening.

Would Fortune 500 companies stop using MySQL because there was no company behind it? No. There are still ways to prove due diligence from a compliance standpoint.

As things have stood for the past 2 years, “things falling apart” has been both decelerated and accelerated by having a company behind MySQL and being acquired.

The fact is that MySQL is the world’s most popular open source database. I *believe* that having a company behind it helped it gain that status, but I do not believe it is currently necessary to have a company behind it right now. Trying to monetize an open source product can hurt it, a lot; trying to monetize MySQL has done a lot of damage.

Right now, I see development happening inside the company and outside the company. There are now three active release series (5.0, 5.1, 5.4) — will MySQL be able to handle the engineering, QA and support workload that comes along with it? Percona, RedHat and Debian have released binaries for MySQL, with the former company actually making significant changes. The Monty Program offers non-recurring engineering of MySQL (ie, bugfixes, patches, features). 42sql.com and OpenQuery offer training.

The company behind MySQL offers development, support, training, documentation, marketing, QA, binary packaging, forums, lists, and more. Most of the company’s offerings are already being done by others on a smaller scale; what is not is superfluous. In fact, the real value of the company seems to be documentation and QA.

To finish off this post, I would like to reiterate that I am not making a value judgment on having a company behind MySQL. I do not think a company will make MySQL fail, nor do do not think a company is necessary for MySQL’s success. All I am saying is that it is not NECESSARY to have a company behind MySQL.

A year ago, doctor the outline was being written. A lot of work was crammed into the intervening months, viagra buy and I am happy and proud to announce that the MySQL Administrator’s Bible has been published, and is sitting on the shelf at many major booksellers already. The official publication date is today — Monday, May 11th, 2009 — although some stores have had copies for a week, including Amazon.com.

The MySQL Administrator’s Bible, published by Wiley Press (available on Amazon.com at http://www.amazon.com/MySQL-Administrators-Bible-Sheeri-Cabral/dp/0470416912/, fully covers how to administer MySQL 5.1. It is suitable for people new to MySQL, although as an experienced MySQL DBA I can say that I learned a lot while researching and writing this book, and I believe that even veteran DBAs can learn from this book.

This book for anyone who wants to learn how to use and administer MySQL. Unlike other beginning books, however, it will appeal to DBAs who are experienced in other database systems such as Oracle, Postgres, Microsoft SQL Server, DB2, Sybase, Firebird. For example, the book contains a chapter on how MySQL’s SQL is different from the SQL standard. Basic SQL has been added as a feature of the companion website, so that those who do not know how to form a query can learn, but those who are well versed in SQL do not feel they have wasted money buying a book where they already know some of the material in it.

The detailed table of contents can be viewed or downloaded as a PDF. Or, if scanning the index is your cup of tea, it is also available as a PDF. The cover price is $49.99, but Amazon.com is selling it for $31.49.

About six months ago, this the question of storing images in a database came up. This is one of my favorite topics, page and has many database-agnostic parts.

Personally, grip I think “tell me about storing images in a database” is actually a great interview question, because you will be able to see the difference between someone who has just memorized “what’s right” versus someone who is really thinking. It also helps you see how someone will communicate — if they just say “NEVER do it, it’s as bad as crossing the streams!” then they are a type of person that gives you a short answer, without much explanation, and without many nuances. (That may be what you are looking for, but usually you want someone who gives reasons for why they strongly feel one way or another).

Consider the following cases:

What about storing lots of small
(say 1Mb or less) images that change frequently (say, dating profile pictures)?

What about large images that change infrequently (say, highly detailed satellite images)?

How important is consistency, and how will data consistency be maintained if images are stored outside the database? How will consistent backups be done?

What other resources (such as a CDN) are available?

What compliance and auditing issues might this client have?

What is the “sweet spot” in terms of size of an image stored in the database, and does that apply to text too? Would it be OK to have a TEXT or LONGTEXT field in the database, but all images are stored outside of the database?

All of these (and more) may swing the pendulum one way or another.

Putting images on a filesystem is the most popular method of doing things. We do have a client that stores “big BLOBby data” in a table (documents, images) — this is mostly for consistency and archiving purposes.

The cons of storing images in a database:
– more db traffic — in, out, and through (where through = replication)
– backups and exports from the db are more of a pain. Data/index files and tablespaces can get quite large. It’s nicer to be able to rsync
files….
– restores are more of a pain too.
– there is no computational stuff really that the db can do (other than, say, length). It cannot sort, compare, etc (well it can but it’s
meaningless). Using separate files makes coding actions such as like making thumbnails much easier.

The pros of storing images in a database:
– you have data integrity and consistency. If you delete a record you can cascade that delete down to the image. You cannot do a JOIN of an OS
and a db.
– databases are really really good at storage and retrieval. It can be argued that filesystems are really really good at storage and retrieval too, but for high activity only certain types of filesystems are, and if you do not have a ReiserFS or MogileFS expert, you may end up with more
than you bargained for. Very likely, you have someone already knowledgeable about databases.

Things that can be pros and cons:

– filesystem vs. database caching. This really depends on the filesystem and the DBMS you’re using. Many folks also use other caching methods for images too…..(webserver/app server/memcached/CDN/whatever)

Here are some references:

Oracle’s whitepaper on The Move to Store Images in a Database
An Article I wrote in Mar 2006, which is still highly relevant. Make sure to read all the comments, including following links like Mike Kruckenberg’s thoughts.

tool can be used just like InnoDB Hot Backup.

Many are wondering, rehabilitation “is it good enough?” In fact, site I wondered the same thing, side effects and after a few weeks of using and testing Xtrabackup (on machines that have MyISAM and InnoDB tables), I can say:

0) We have not run into any problems with backing up InnoDB tables; on the machines we’ve run it on (RHEL 5.3 and Debian) it has been stable.

1) We were able to use one of the binaries provided by Percona — we did not have to compile anything. Binaries are provided for 64-bit versions of Linux

2) Innobackupex is the script analogous to Innobackup. Basically, this is a wrapper script for Xtrabackup that will copy the non-InnoDB tables.

3) Usually we run InnoDB Hot Backup from a non-privileged user. We had to run Xtrabackup as the mysql user; we think this is because it writes a state file in the datadir, but we did not dig too hard — once we saw that running it from the mysql user worked, we just left it like that.

4) Xtrabackup does not have a –compress option like InnoDB hot backup does. Having the option would be useful, but I believe this option will come soon.

Currently, for clients who want a hot backup solution but do not want to pay for InnoDB Hot Backup, Pythian recommends Xtrabackup.

Today’s contradiction:

MySQL has server variables named new and old.

The new variable can be set per-session and globally, injection and is dynamic. The old variable is not dynamic, medicine and only global in scope. Both default to FALSE in MySQL 5.1.

According to the manual, cure the new variable:

was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility.

That same page notes the following about the old variable:

when old is enabled, it changes the default scope of index hints to that used prior to MySQL 5.1.17. That is, index hints with no FOR clause apply only to how indexes are used for row retrieval and not to resolution of ORDER BY or GROUP BY clauses.

That’s right — the old variable changes some index hint behavior to before 5.1.17, and the new variable is provided for backwards compatibility of a 4.0 function.

Perhaps now that they have already used the vague terms, MySQL will stick to descriptive names, such as old_index_hints and new_behavior (or, even better, specifying what that new behavior is. If not in the variable itself, at least in the manual!)

The bad news is that whatever agreement MySQL AB had with Meetup.com has ended. As per the wiki at http://forge.mysql.com/wiki/How_to_create_a_user_group:

MySQL AB has an agreement in place with meetup.com to cover the organizer fees. Simply click at the link at the top of the meetup.com page to request your electronic voucher so you can become an organizer.

Unfortunately, viagra information pills a year of meetup.com is $144.

The good news is that Giuseppe and Dups (as well as the local Sun/MySQL folks in Boston who also sponsor the pizza and soda we have) have expressed that they are dedicated to sponsoring these user groups, dentist neurosurgeon so nobody has to go around digging for spare change just yet.

Here’s the sad e-mail I received:

from Meetup Support
to sheeri
date Mon, May 4, 2009 at 5:52 PM
subject Greetings from Meetup Support (KMM1797374I15977L0KM)
mailed-by meetup.com

Hello Sheeri,

Thanks for your patience while we looked into this!

I did some research and My SQL will no longer be sponsoring Meetup
Groups. Therefore, you’ll need to purchase a subscription plan in order
to continue hosting the Group on Meetup.com. Sorry about that!

There are 3 price plans available:

$12 a month for 6 months (a single $72 charge)

$15 a month for 3 months (a single $45 charge)

$19 per month

Each plan has a 30-day money back guarantee. Organizers can run up to 3
Meetup groups with their subscription.

You can view and update your subscription plan from here:

http://www.meetup.com/account/subscription/

If you have any other questions, please let me know.

Sincerely,

Antonio Ortiz
Meetup Support Specialist
Meetup HQ

1048909 is your incident number. Please do not remove this number from
the message.

Do you have_community_features? I do!

SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   |
+-------------------------+-------+
1 row in set (0.00 sec)

I am pretty sure this is one of those variables that MySQL has put in as an unused placeholder, bronchi but for now, shop it is not even documented as unused (as are table_lock_wait_timeout, http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html, and a Google search restricted to the site dev.mysql.com turns up only one match, which is not useful: http://www.google.com/search?q=site%3Adev.mysql.com+have_community_features

I wonder if using this parameter could have been an easier way to deal with the release of MySQL 5.4. I wonder what it is used for, or what it will be used for. In all the versions of 5.1 I have access to, I see the parameter in there (from 5.1.29 – 5.1.32).

More interestingly, on a 6.0.5 server:

Server version: 6.0.5-alpha-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> SHOW GLOBAL VARIABLES LIKE 'have_community_features';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | NO    |
+-------------------------+-------+
1 row in set (0.03 sec)

This has been logged as Bug 44651.

So, anabolics .

Baron’s first post was spurned by someone saying:
you know, you guys really need Sun/MySQL, because without the mother ship, things will fall apart and your own business will fail.

Dean thinks this may be have been a conversation he had, and states: