It?s been a while since my last post. To be honest I have been
extremely busy with so many personal things that I?m surprised I
made it out alive.
During this time, I managed to find a new job in an international
advertising company that has an office, here in Beijing. I still
haven?t completely managed to get my visa situation completed
here in China (a word of caution, with the Beijing Olympics
coming up soon, there has been a serious crack down on foreigners
living in Beijing and worsening of conditions) and I need to
leave the country and come back just to renew my visa (almost all
foreigners need to do that).
In my new job, they use Oracle databases, so I?m worried about
how much time I can spend on MySQL related issues. I am, however,
committed to do my ?pet projects? on MySQL ? which is why I have
this blog.
I am eager to learn what Oracle has to offer. I haven?t worked
for such a large company before and …
There was only so much I could do for my 1976 Mustang. I did not have money to put an Edelbrock head in, so I spent what little I had in a new stereo, a tinted back window, a new muffler that increased the neighborhood noise level a notch, and a couple of other random parts. In the end, it really did not go any faster, and I was $650 poorer.I liken my experience with SELF JOIN to my 1976
Reading Marc Fleury's post on the subject of open source and proprietary software (a response to my post on Benchmark's investment in Engine Yard), you'd be tempted to believe that the world is growing more proprietary. Reading InfoWorld's response to Marc, you'd be certain that yes, the world is definitely closing off.
Unfortunately, the data suggests the inverse.
It seems quite clear to me that the software industry is rapidly, in some cases, and gradually, in others, opening up. Very few can get away with foisting a heavily proprietary model on the market anymore. Were a startup to launch today with a great new idea for a proprietary …
[Read more]
Last night I performed an upgrade of 5 of our production servers
to version 5.0.52 ( solaris 10 / 64 bit x86). We have been
testing for over a month and in the 11th hour discovered that
there is a bug in the mysql command line
utility.
I was creating a blank copy of one of our production databases (
schema only) on an upgraded test system using a script generated
by our design tool. During this, I encountered an interesting
error that prevented the creation of a table with a column named
"extra_file_delimiter". Further testing revealed that the 5.0.52
through 5.0.54 releases have a bug in the mysql
client which parses the word "delimiter" incorrectly.
As a work-around, I've also deployed the 5.0.50 release in a
separate directory and replaced the 5.0.52 mysql
utility with a symbolic link to the 5.0.50 version. Ugly for
sure, but we decided to do that since we had so much …
Last night I performed an upgrade of 5 of our production servers
to version 5.0.52 ( solaris 10 / 64 bit x86). We have been
testing for over a month and in the 11th hour discovered that
there is a bug in the mysql command line
utility.
I was creating a blank copy of one of our production databases (
schema only) on an upgraded test system using a script generated
by our design tool. During this, I encountered an interesting
error that prevented the creation of a table with a column named
"extra_file_delimiter". Further testing revealed that the 5.0.52
through 5.0.54 releases have a bug in the mysql
client which parses the word "delimiter" incorrectly.
As a work-around, I've also deployed the 5.0.50 release in a
separate directory and replaced the 5.0.52 mysql
utility with a symbolic link to the 5.0.50 version. Ugly for
sure, but we decided to do that since we had so much …
Today I am introducing my first open source contribution to MySQL: MyQ Gadgets. These are a small collection of tools I wrote to make it easier to see what is going on inside of a running MySQL server. There's nothing magical about them, they simply collect values from SHOW STATUS, SHOW SLAVE STATUS, and SHOW INNODB STATUS and present them in an easier-to-digest format similar to that of iostat (for those who are familiar with it). Here's an example of some data from SHOW INNODB STATUS:
./myq_innodb_status -h mysqlhost.domain.com -u user -p password -t 20 row Inno Engine (/sec) Buffer (/sec) (%) Log OS (/sec) Semaphores time read ins upd del new read wrte full dirt hit io/s read wrte fsyc spw rnds osw 16:10:55 3.8k 9.8 9.7 0 0.3 0 13.7 93 13 100 14.1 0 19.4 14.7 30m 94m 485k 16:11:15 1.0k 10.0 4.8 0 0.3 0.1 17.6 93 13 100 11.5 0.1 20.0 12.4 3.0 21.0 1.0 …[Read more]
If security is a process, Oracle's users have checked out of the process completely. As CNET's Dawn Kawamoto reports, two-thirds of Oracle users report that they have never installed an Oracle Critical Patch Update (CPU). That's "never" as in "not ever."
The data comes from a survey of Oracle database administrators, consultants, and developers by Sentrigo. It's shocking.
Perhaps it's also a testament to the robust security of Oracle's products. Let's assume that the respondents to this survey are representative of Oracle users generally. With 66% of Oracle's databases essentially unprotected and yet rarely compromised, that says something about their quality.
Or maybe it just means that database hackers are lazy. …
[Read more]I haven’t written anything in a while about the MySQL Meetup I host in Silicon Valley, but I though the new year would be a good time to invite everyone to attend.
The Silicon Valley MySQL Meetup is hosted at Google’s campus in Mountain View. We regularly have open Q&A sessions, where we collect everyone’s questions, and then go through them one by one discussing, answering, and adding more questions. We stop when we run out of questions, or time. (Usually time runs out first.) Sometimes we’ll have myself or someone else with an official presentation.
Come on out for tonight’s Meetup (open Q&A), I’ll see you there!
So I have a constant battle with Charter Cable - high speed internet at home. Constantly causing all kinds of problems. So I decided to make a little script that runs from cron every minute that will track my outages in a single table database. Then I’ll be graphing the outages in real-time via jpGraph [as seen here]. Here’s the simple code.
The database table create script for
router_uptime
CREATE TABLE `response` (
`id` bigint(32) NOT NULL auto_increment,
`state` tinyint(1) NOT NULL,
`ip_address` varchar(15) NOT NULL,
`Creation_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3833
;
The Script
#-(0)> cat check_ping
#!/bin/sh
…
For several years I have been wondering if there was a RDBMS that serves as a message queue as well1. And in the end of last year, noticing that MySQL 5.1 with support for pluggable storage engine was entering its RC stage, and that (from little googling) nobody was creating such storage engine, I dicided to write my own.
Q4M (Queue for MySQL) is a message queue that works as a
pluggable storage engine of MySQL 5.1, designed to be robust,
fast, flexible. The development started in late December of 2007,
and although it is very primitive, operates quite swiftly.
q4m.31tools.com
Yes, it is primitive, and might have stability problems (I do not recommend using Q4M in a production environment), but if you are interested, please have a try.
1: At least Oracle seems to, but I never had a chance to use it.