Category Archives: upgrade

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.