Generating a MySQL Password

Sheeri’s feed from the Mozilla.com IT blog
Sheeri’s feed from the Mozilla.com IT blog

I’m not a wizard with infographics, web there are almost 400 databases at Mozilla, patient in 11 different categories. Here is how each category fares in number of databases:

Mozilla DBs in 2012

Here is how each category measures up with regards to database size – clearly, our crash-stats database (which is on Postgres, not MySQL) is the largest:

2012 size of all Mozilla databases

So here is another pie chart with the relative sizes of the MySQL databases:
2012 size of MySQL databases at Mozilla

I’m sure I’ve miscategorized some things (for instance, are metrics on AMO classified under AMO/Marketplace or “internal tools”?) but here are the categories I used:

Categories:
air.m.o – air.mozilla.org
AMO/Marketplace – addons/marketplace
blog/web page – it’s a db behind a blog or mostly static webpage
bugzilla – Bugzilla
Crash-stats – Socorro, crash-stats.mozilla.com – Where apps like Firefox send crash details.
Internal tool – If the db behind this is down, moco/mofo people may not be able to do their work. This covers applications from graphs.mozilla.org to inventory.mozilla.org to the PTO app.
release tool – If this db is down, releases can not happen (but this db is not a tree-closing db).
SUMO – support.mozilla.org
Tree-closing – if this db is down, the tree closes (and releases can’t happen)
World-facing – if this db is down, non moco/mofo ppl will notice. These are specifically tools that folks interact with, including the Mozilla Developer Network and sites like gameon.mozilla.org
World-interfacing – This db is critical to tools we use to interface with the world, though not necessarily world visible. basket.mozilla.org, Mozillians, etc.

The count of databases includes all production/dev/stage servers. The size is the size of the database on one of the production/dev/stage machines. For example, Bugzilla has 6 servers in use – 4 in production and 2 in stage. The size is the size of the master in production and the master in stage, combined. This way we have not grossly inflated the size of the database, even though technically speaking we do have to manage the data on each of the servers.

For next year, I hope to be able to gather this kind of information automatically, and have easily accessible comprehensive numbers for bandwidth, number of queries per day on each server, and more.

Sheeri’s feed from the Mozilla.com IT blog

I’m not a wizard with infographics, web there are almost 400 databases at Mozilla, patient in 11 different categories. Here is how each category fares in number of databases:

Mozilla DBs in 2012

Here is how each category measures up with regards to database size – clearly, our crash-stats database (which is on Postgres, not MySQL) is the largest:

2012 size of all Mozilla databases

So here is another pie chart with the relative sizes of the MySQL databases:
2012 size of MySQL databases at Mozilla

I’m sure I’ve miscategorized some things (for instance, are metrics on AMO classified under AMO/Marketplace or “internal tools”?) but here are the categories I used:

Categories:
air.m.o – air.mozilla.org
AMO/Marketplace – addons/marketplace
blog/web page – it’s a db behind a blog or mostly static webpage
bugzilla – Bugzilla
Crash-stats – Socorro, crash-stats.mozilla.com – Where apps like Firefox send crash details.
Internal tool – If the db behind this is down, moco/mofo people may not be able to do their work. This covers applications from graphs.mozilla.org to inventory.mozilla.org to the PTO app.
release tool – If this db is down, releases can not happen (but this db is not a tree-closing db).
SUMO – support.mozilla.org
Tree-closing – if this db is down, the tree closes (and releases can’t happen)
World-facing – if this db is down, non moco/mofo ppl will notice. These are specifically tools that folks interact with, including the Mozilla Developer Network and sites like gameon.mozilla.org
World-interfacing – This db is critical to tools we use to interface with the world, though not necessarily world visible. basket.mozilla.org, Mozillians, etc.

The count of databases includes all production/dev/stage servers. The size is the size of the database on one of the production/dev/stage machines. For example, Bugzilla has 6 servers in use – 4 in production and 2 in stage. The size is the size of the master in production and the master in stage, combined. This way we have not grossly inflated the size of the database, even though technically speaking we do have to manage the data on each of the servers.

For next year, I hope to be able to gather this kind of information automatically, and have easily accessible comprehensive numbers for bandwidth, number of queries per day on each server, and more.

I’m not a wizard with infographics, drugs there are almost 400 databases at Mozilla, geriatrician in 11 different categories. Here is how each category fares in number of databases:

Mozilla DBs in 2012

Here is how each category measures up with regards to database size – clearly, our crash-stats database (which is on Postgres, not MySQL) is the largest:

2012 size of all Mozilla databases

So here is another pie chart with the relative sizes of the MySQL databases:
2012 size of MySQL databases at Mozilla

I’m sure I’ve miscategorized some things (for instance, are metrics on AMO classified under AMO/Marketplace or “internal tools”?) but here are the categories I used:

Categories:
air.m.o – air.mozilla.org
AMO/Marketplace – addons/marketplace
blog/web page – it’s a db behind a blog or mostly static webpage
bugzilla – Bugzilla
Crash-stats – Socorro, crash-stats.mozilla.com – Where apps like Firefox send crash details.
Internal tool – If the db behind this is down, moco/mofo people may not be able to do their work. This covers applications from graphs.mozilla.org to inventory.mozilla.org to the PTO app.
release tool – If this db is down, releases can not happen (but this db is not a tree-closing db).
SUMO – support.mozilla.org
Tree-closing – if this db is down, the tree closes (and releases can’t happen)
World-facing – if this db is down, non moco/mofo ppl will notice. These are specifically tools that folks interact with, including the Mozilla Developer Network and sites like gameon.mozilla.org
World-interfacing – This db is critical to tools we use to interface with the world, though not necessarily world visible. basket.mozilla.org, Mozillians, etc.

The count of databases includes all production/dev/stage servers. The size is the size of the database on one of the production/dev/stage machines. For example, Bugzilla has 6 servers in use – 4 in production and 2 in stage. The size is the size of the master in production and the master in stage, combined. This way we have not grossly inflated the size of the database, even though technically speaking we do have to manage the data on each of the servers.

For next year, I hope to be able to gather this kind of information automatically, and have easily accessible comprehensive numbers for bandwidth, number of queries per day on each server, and more.

Sheeri’s feed from the Mozilla.com IT blog

I’m not a wizard with infographics, web there are almost 400 databases at Mozilla, patient in 11 different categories. Here is how each category fares in number of databases:

Mozilla DBs in 2012

Here is how each category measures up with regards to database size – clearly, our crash-stats database (which is on Postgres, not MySQL) is the largest:

2012 size of all Mozilla databases

So here is another pie chart with the relative sizes of the MySQL databases:
2012 size of MySQL databases at Mozilla

I’m sure I’ve miscategorized some things (for instance, are metrics on AMO classified under AMO/Marketplace or “internal tools”?) but here are the categories I used:

Categories:
air.m.o – air.mozilla.org
AMO/Marketplace – addons/marketplace
blog/web page – it’s a db behind a blog or mostly static webpage
bugzilla – Bugzilla
Crash-stats – Socorro, crash-stats.mozilla.com – Where apps like Firefox send crash details.
Internal tool – If the db behind this is down, moco/mofo people may not be able to do their work. This covers applications from graphs.mozilla.org to inventory.mozilla.org to the PTO app.
release tool – If this db is down, releases can not happen (but this db is not a tree-closing db).
SUMO – support.mozilla.org
Tree-closing – if this db is down, the tree closes (and releases can’t happen)
World-facing – if this db is down, non moco/mofo ppl will notice. These are specifically tools that folks interact with, including the Mozilla Developer Network and sites like gameon.mozilla.org
World-interfacing – This db is critical to tools we use to interface with the world, though not necessarily world visible. basket.mozilla.org, Mozillians, etc.

The count of databases includes all production/dev/stage servers. The size is the size of the database on one of the production/dev/stage machines. For example, Bugzilla has 6 servers in use – 4 in production and 2 in stage. The size is the size of the master in production and the master in stage, combined. This way we have not grossly inflated the size of the database, even though technically speaking we do have to manage the data on each of the servers.

For next year, I hope to be able to gather this kind of information automatically, and have easily accessible comprehensive numbers for bandwidth, number of queries per day on each server, and more.

I’m not a wizard with infographics, drugs there are almost 400 databases at Mozilla, geriatrician in 11 different categories. Here is how each category fares in number of databases:

Mozilla DBs in 2012

Here is how each category measures up with regards to database size – clearly, our crash-stats database (which is on Postgres, not MySQL) is the largest:

2012 size of all Mozilla databases

So here is another pie chart with the relative sizes of the MySQL databases:
2012 size of MySQL databases at Mozilla

I’m sure I’ve miscategorized some things (for instance, are metrics on AMO classified under AMO/Marketplace or “internal tools”?) but here are the categories I used:

Categories:
air.m.o – air.mozilla.org
AMO/Marketplace – addons/marketplace
blog/web page – it’s a db behind a blog or mostly static webpage
bugzilla – Bugzilla
Crash-stats – Socorro, crash-stats.mozilla.com – Where apps like Firefox send crash details.
Internal tool – If the db behind this is down, moco/mofo people may not be able to do their work. This covers applications from graphs.mozilla.org to inventory.mozilla.org to the PTO app.
release tool – If this db is down, releases can not happen (but this db is not a tree-closing db).
SUMO – support.mozilla.org
Tree-closing – if this db is down, the tree closes (and releases can’t happen)
World-facing – if this db is down, non moco/mofo ppl will notice. These are specifically tools that folks interact with, including the Mozilla Developer Network and sites like gameon.mozilla.org
World-interfacing – This db is critical to tools we use to interface with the world, though not necessarily world visible. basket.mozilla.org, Mozillians, etc.

The count of databases includes all production/dev/stage servers. The size is the size of the database on one of the production/dev/stage machines. For example, Bugzilla has 6 servers in use – 4 in production and 2 in stage. The size is the size of the master in production and the master in stage, combined. This way we have not grossly inflated the size of the database, even though technically speaking we do have to manage the data on each of the servers.

For next year, I hope to be able to gather this kind of information automatically, and have easily accessible comprehensive numbers for bandwidth, number of queries per day on each server, and more.

You may have noticed that I stopped posting the “weekly news” from the Mozilla DB Team. After going through the Operations Report Card and applying it to DBAs in OurSQL Podcast numbers 111, website 112, 114, 115 and 116, I started thinking that the updates were really more like metrics, and it would better serve my own purposes better to do the updates monthly.

The purposes of doing this type of blog post are:
0) Answering “So what does a DBA do, anyway?”
1) Answering “DBA? At Mozilla? Does Firefox have a database? Why does Mozilla have databases, and what for?”
2) Showing what the DB team does for Mozilla, so that folks will understand that “just keeping things working” is actually a lot of work. It also helps compile yearly reviews of accomplishments.

We are also starting to get some metrics information. This month we started easy – number of MySQL and Postgres machines, number of unique databases (mysql, information_schema, performance_schema and test are ignored, and duplicates, like the same database on a master and 2 slaves, are ignored), and version information.

As of today, we have 9 unique databases across 8 Postgres servers in 4 clusters, with 6 being Postgres 9.0 and 2 being Postgres 9.2 – we are currently upgrading all our Postgres databases to 9.2 and expect that by the end of December all servers will be using 9.2.

We have 427 unique databases across 98 MySQL DB machines in 20 clusters, with 3 being MySQL 5.0, 71 being MySQL 5.1 (mostly Percona’s patched 5.1), and 24 being MariaDB 5.5.

And in the last week of October and the month of November, we have:

  • Documented 4 more of our Nagios checks.
  • Started to upgrade Postgres databases to Postgres 9.2
  • Decommissioned a legacy database cluster for Firefox themes.
  • Built a new database cluster (complete with monitoring and backups) for a new Sentry implementation.
  • Upgraded 14 machines for general operating system updating purposes and to ensure that be2net drivers are up-to-date; out-of-date drivers can (and have!) caused servers to crash.
  • Upgraded MySQL 5.0 to MySQL 5.1 across 3 clusters and 7 machines.
  • Did a quarterly purge of Crash Stats data.
  • Had to re-sync 6 slaves when a transaction rolled back on the master, but some of the tables modified were MyISAM. So the master had data in some tables that was out of sync with the slaves.
  • Assisted in converting to use UTC timestamps in the Elmo database behind the Mozilla localization portal and the Bugzilla Anthropology Project, prompting a blog post on converting timezone-specific times in MySQL.
  • Decommissioned a legacy “production generic” database cluster that had over 60 databases on it.
  • Built a 5th database backup instance due to growing backup needs.
  • Changed binary log format to MIXED on our JIRA installation due to JIRA requirements and an upgrade to MySQL 5.1 issuing warnings that MySQL 5.0 had not.
  • Added checksums to the database cluster that runs Input and Firefox about:home snippets.
  • Archived and dropped the database behind Rock Your Firefox.
  • Exported Bugzilla data for a research project. Did you know if you are doing academic research, you can get a copy of Mozilla’s public Bugzilla data?
  • Gave read-only database access to a developer behind the Datazilla project.
  • Updated the email list for vouched Mozillians.
  • Backfilled missing crash-stats data after some failed cron scripts.
  • Cleared some junk data from the Datazilla databases.
  • Added new custom fields to our implementation of Bugzilla for upcoming release versions: Firefox 20, Thunderbird 20, Thunderbird ESR 20 and seamonkey 217.
  • Added 10 new machines to the Graphs database, and added new sets of machines for Mozilla ESR 17 and Thunderbird ESR 17.
  • Gave read-only database access to the two main leads of the Air Mozilla project.
  • Debugged and turned off a 10-second timeout in our load balancing pool that was causing Postgres monitors and processors to lose connection to their databases.
  • Discovered that the plugins database actually does better with the query_cache turned on, and tuned its size.
  • Tweaked tokudb_cache_size and innodb_buffer_pool_size on our Datazilla databases so that less swap would be used.
  • Created 2 read/write accounts for 2 people to access the development database for Mozillians.
  • Gave access to Datazilla databases for staging.

Wednesday, Nov 28th was my 1-year anniversary at Mozilla. Tomorrow is December! 2012 went by very quickly.

Sheeri’s feed from the Mozilla.com IT blog

I’m not a wizard with infographics, web there are almost 400 databases at Mozilla, patient in 11 different categories. Here is how each category fares in number of databases:

Mozilla DBs in 2012

Here is how each category measures up with regards to database size – clearly, our crash-stats database (which is on Postgres, not MySQL) is the largest:

2012 size of all Mozilla databases

So here is another pie chart with the relative sizes of the MySQL databases:
2012 size of MySQL databases at Mozilla

I’m sure I’ve miscategorized some things (for instance, are metrics on AMO classified under AMO/Marketplace or “internal tools”?) but here are the categories I used:

Categories:
air.m.o – air.mozilla.org
AMO/Marketplace – addons/marketplace
blog/web page – it’s a db behind a blog or mostly static webpage
bugzilla – Bugzilla
Crash-stats – Socorro, crash-stats.mozilla.com – Where apps like Firefox send crash details.
Internal tool – If the db behind this is down, moco/mofo people may not be able to do their work. This covers applications from graphs.mozilla.org to inventory.mozilla.org to the PTO app.
release tool – If this db is down, releases can not happen (but this db is not a tree-closing db).
SUMO – support.mozilla.org
Tree-closing – if this db is down, the tree closes (and releases can’t happen)
World-facing – if this db is down, non moco/mofo ppl will notice. These are specifically tools that folks interact with, including the Mozilla Developer Network and sites like gameon.mozilla.org
World-interfacing – This db is critical to tools we use to interface with the world, though not necessarily world visible. basket.mozilla.org, Mozillians, etc.

The count of databases includes all production/dev/stage servers. The size is the size of the database on one of the production/dev/stage machines. For example, Bugzilla has 6 servers in use – 4 in production and 2 in stage. The size is the size of the master in production and the master in stage, combined. This way we have not grossly inflated the size of the database, even though technically speaking we do have to manage the data on each of the servers.

For next year, I hope to be able to gather this kind of information automatically, and have easily accessible comprehensive numbers for bandwidth, number of queries per day on each server, and more.

I’m not a wizard with infographics, drugs there are almost 400 databases at Mozilla, geriatrician in 11 different categories. Here is how each category fares in number of databases:

Mozilla DBs in 2012

Here is how each category measures up with regards to database size – clearly, our crash-stats database (which is on Postgres, not MySQL) is the largest:

2012 size of all Mozilla databases

So here is another pie chart with the relative sizes of the MySQL databases:
2012 size of MySQL databases at Mozilla

I’m sure I’ve miscategorized some things (for instance, are metrics on AMO classified under AMO/Marketplace or “internal tools”?) but here are the categories I used:

Categories:
air.m.o – air.mozilla.org
AMO/Marketplace – addons/marketplace
blog/web page – it’s a db behind a blog or mostly static webpage
bugzilla – Bugzilla
Crash-stats – Socorro, crash-stats.mozilla.com – Where apps like Firefox send crash details.
Internal tool – If the db behind this is down, moco/mofo people may not be able to do their work. This covers applications from graphs.mozilla.org to inventory.mozilla.org to the PTO app.
release tool – If this db is down, releases can not happen (but this db is not a tree-closing db).
SUMO – support.mozilla.org
Tree-closing – if this db is down, the tree closes (and releases can’t happen)
World-facing – if this db is down, non moco/mofo ppl will notice. These are specifically tools that folks interact with, including the Mozilla Developer Network and sites like gameon.mozilla.org
World-interfacing – This db is critical to tools we use to interface with the world, though not necessarily world visible. basket.mozilla.org, Mozillians, etc.

The count of databases includes all production/dev/stage servers. The size is the size of the database on one of the production/dev/stage machines. For example, Bugzilla has 6 servers in use – 4 in production and 2 in stage. The size is the size of the master in production and the master in stage, combined. This way we have not grossly inflated the size of the database, even though technically speaking we do have to manage the data on each of the servers.

For next year, I hope to be able to gather this kind of information automatically, and have easily accessible comprehensive numbers for bandwidth, number of queries per day on each server, and more.

You may have noticed that I stopped posting the “weekly news” from the Mozilla DB Team. After going through the Operations Report Card and applying it to DBAs in OurSQL Podcast numbers 111, website 112, 114, 115 and 116, I started thinking that the updates were really more like metrics, and it would better serve my own purposes better to do the updates monthly.

The purposes of doing this type of blog post are:
0) Answering “So what does a DBA do, anyway?”
1) Answering “DBA? At Mozilla? Does Firefox have a database? Why does Mozilla have databases, and what for?”
2) Showing what the DB team does for Mozilla, so that folks will understand that “just keeping things working” is actually a lot of work. It also helps compile yearly reviews of accomplishments.

We are also starting to get some metrics information. This month we started easy – number of MySQL and Postgres machines, number of unique databases (mysql, information_schema, performance_schema and test are ignored, and duplicates, like the same database on a master and 2 slaves, are ignored), and version information.

As of today, we have 9 unique databases across 8 Postgres servers in 4 clusters, with 6 being Postgres 9.0 and 2 being Postgres 9.2 – we are currently upgrading all our Postgres databases to 9.2 and expect that by the end of December all servers will be using 9.2.

We have 427 unique databases across 98 MySQL DB machines in 20 clusters, with 3 being MySQL 5.0, 71 being MySQL 5.1 (mostly Percona’s patched 5.1), and 24 being MariaDB 5.5.

And in the last week of October and the month of November, we have:

  • Documented 4 more of our Nagios checks.
  • Started to upgrade Postgres databases to Postgres 9.2
  • Decommissioned a legacy database cluster for Firefox themes.
  • Built a new database cluster (complete with monitoring and backups) for a new Sentry implementation.
  • Upgraded 14 machines for general operating system updating purposes and to ensure that be2net drivers are up-to-date; out-of-date drivers can (and have!) caused servers to crash.
  • Upgraded MySQL 5.0 to MySQL 5.1 across 3 clusters and 7 machines.
  • Did a quarterly purge of Crash Stats data.
  • Had to re-sync 6 slaves when a transaction rolled back on the master, but some of the tables modified were MyISAM. So the master had data in some tables that was out of sync with the slaves.
  • Assisted in converting to use UTC timestamps in the Elmo database behind the Mozilla localization portal and the Bugzilla Anthropology Project, prompting a blog post on converting timezone-specific times in MySQL.
  • Decommissioned a legacy “production generic” database cluster that had over 60 databases on it.
  • Built a 5th database backup instance due to growing backup needs.
  • Changed binary log format to MIXED on our JIRA installation due to JIRA requirements and an upgrade to MySQL 5.1 issuing warnings that MySQL 5.0 had not.
  • Added checksums to the database cluster that runs Input and Firefox about:home snippets.
  • Archived and dropped the database behind Rock Your Firefox.
  • Exported Bugzilla data for a research project. Did you know if you are doing academic research, you can get a copy of Mozilla’s public Bugzilla data?
  • Gave read-only database access to a developer behind the Datazilla project.
  • Updated the email list for vouched Mozillians.
  • Backfilled missing crash-stats data after some failed cron scripts.
  • Cleared some junk data from the Datazilla databases.
  • Added new custom fields to our implementation of Bugzilla for upcoming release versions: Firefox 20, Thunderbird 20, Thunderbird ESR 20 and seamonkey 217.
  • Added 10 new machines to the Graphs database, and added new sets of machines for Mozilla ESR 17 and Thunderbird ESR 17.
  • Gave read-only database access to the two main leads of the Air Mozilla project.
  • Debugged and turned off a 10-second timeout in our load balancing pool that was causing Postgres monitors and processors to lose connection to their databases.
  • Discovered that the plugins database actually does better with the query_cache turned on, and tuned its size.
  • Tweaked tokudb_cache_size and innodb_buffer_pool_size on our Datazilla databases so that less swap would be used.
  • Created 2 read/write accounts for 2 people to access the development database for Mozillians.
  • Gave access to Datazilla databases for staging.

Wednesday, Nov 28th was my 1-year anniversary at Mozilla. Tomorrow is December! 2012 went by very quickly.

So, cure I’ve started a new job as a Senior Database Engineer at Salesforce, price and one of the services I help provide is adding users to MySQL. We have some nice chef recipes, look so all I have to do is update a few files, including adding in the MySQL password hash.

Now, when I added myself, I just logged into MySQL and generated a password hash. But when my SRE (systems reliability engineer) colleague needed to generate a password, he did not have a MySQL system he could login to.

The good news is it’s easy to generate a MySQL password hash. The MySQL password hash is simply a SHA1 hash of a SHA1 hash, with * put in the beginning. Which means you do not need a MySQL database to create a MySQL password hash – all you need is a programming language that has a SHA1 function (well, and a concatenate function).

And I found it, of course, on this post at StackExchange. So you don’t have to click through, here is what it says – and I have tested all these methods and I get the same password hash. I have changed their example of “right” to “PASSWORD HERE” so it’s more readable and obvious where the password goes, in case you copy and paste from here.

Some one-liners:

MySQL (may require you add -u(user) -p):

mysql -NBe "select password('PASSWORD HERE')"

Python:

python -c 'from hashlib import sha1; print "*" + sha1(sha1("PASSWORD HERE").digest()).hexdigest().upper()'

Perl:

perl -MDigest::SHA1=sha1_hex -MDigest::SHA1=sha1 -le 'print "*". uc sha1_hex(sha1("PASSWORD HERE"))'

PHP:

php -r 'echo "*" . strtoupper(sha1(sha1("PASSWORD HERE", TRUE))). "
";'

Hopefully these help you – they have enabled my colleagues to easily generate what’s needed without having to find (or create) a MySQL instance that they can already login to.

 

 

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.

Code of Conduct: It’s a Misnomer

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.

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.

For me, medicine a Code of Conduct is not actually guidelines for how to act. For me, a Code of Conduct is what to do if there is a problem with someone’s conduct. When I get on a plane, I am told what to do in case of emergency – here are the exits, here’s how to use your life jacket and oxygen mask. I am not told every little thing that could be an emergency – I believe that would be a waste of time and invariably something would be left out.

Similarly, for conferences, listing out all the behaviors that might be problematic is a waste of time, and invariably, behaviors are left out. In my opinion, that is a waste of time. What is NOT a waste of time is giving out the information of what to do in case of emergency.

At the MySQL Connect website, under the “Plan” tab, is a link to the Oracle Events Code of Conduct. It says, simply, to act professionally and respectfully, and if there are any problems, contact Oracle Security and gives a phone numbers. I like that. Simple, and effective. And it was put under the “Plan” tab – exactly where it should be. It’s something to note as you plan to attend.

I put that number in my phone and, thankfully, did not have to use it. But knowing that I had a plan in case something happened made all the difference to me.

*BIG DISCLAIMER – I do not speak for all people everywhere on this matter, just myself.

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, ther