Friendster got some new VC capital, after putting
itself up for sale and nearly running out of money. They filed
for some patents a long time ago, and at least one of those came
through. That appears to be what the VCs are interested in, one
had specifically pushed for patent applications earlier.
See GigaOM and Red Herring: Friendster Wins Patent (don't
click on the actual patent link!)
But what is Friendster's business model? Some advertising, and
subscriptions to phone alerts... I suppose it's going somewhere,
but is it enough? For a small company without VC, this could be a
good road for profitability. But with the VCs wanting to see a
return on …
So, FireFox have come up with a novel idea to promote it’s product. Check out Firefox Day.
The official blurb: Share Firefox with a friend. If your friend downloads Firefox before September 15, you?ll both be immortalized in Firefox 2.
You can even choose how to link your names together on the “Firefox Friends Wall”. Examples like ‘my name’ Informed ‘your name’, or ‘my name’ Empowered ‘your name’, or ‘my name’ Liberated ‘your name’.
Perhaps MySQL can leverage this idea for some what to promote future download!
MySQL issues a cryptic error message, “Error on rename,” when you try to alter a table in such a way that it would break a foreign key constraint: create table test1(a int not null primary key)engine=innodb; create table test2(a int not null, foreign key(a) references test1 (a)) engine=innodb; alter table test2 modify a smallint not null; ERROR 1025 (HY000): Error on rename of './test/#sql-2fa8_1' to './test/test2' (errno: 150) This happens because ALTER TABLE really works by making a copy of the table, then renaming to move the old table out of the way and move the new table into its place.
If someone asks me about MySQL Backup advice my first question would be if they have LVM installed or have some systems with similar features set for other operation systems. Veritas File System can do it for Solaris. Most SAN systems would work as well.
What is really needed is ability to create atomic snapshot of the volume, which can be later mounted same as original file system
Why snapshot based MySQL backups are great ?
There are number of reasons:
Almost Hot backup In most cases you can perform this type of backup while your application is running. No need to shut down server, make it read only or anything like it.
Support for all local disk based storage engines It works with MyISAM and Innodb and BDB, It also should work with Solid, PrimeXT and Falcon storage engines.
Fast Backup You simply do file copy in the binary …
[Read more]
'stop')
echo -n 'Are you sure? (y|N)';
read SANITYCHECK;
if [ $SANITYCHECK != 'y' ]; then
echo "EXITING INPUT NOT y";
exit 1;
fi
Why? Well imagine you have 20 servers running mysql for the site.
You spent 100K to get these servers redundant, automatically
failover if a few go down-which gets the company a High
Availability score of 99.999% in the database backend and then
someone runs
dsh -N ALL_MY_DB_SERVERS /etc/init.d/mysql restart
when the intention was to restart another process like say the
monitoring process.
DOH!!
I have now uploaded my MySQL Playground and you can get it from
http://www.db4free.org/mysql-playground.tar.gz
The size of the file is 1 GB, so please take into account that it
might take some time to download the file.
After download, just extract it to your "Virtual machines"
directory:
tar xvfz mysql-playground.tar.gz
... and load it into your VMWare Server (should work for VMWare
Workstation, VMWare Player too, I guess). I have assigned 768 MB
RAM to this machine, so depending on your total amount of memory
available you might have to change this.
The virtual machine runs SuSE Linux 10.1 (32-bit). The root
password is simply "root" and there's a normal user named "user"
with password …
Most developers are used to programming in procedural or object-oriented languages. SQL, as a declarative language, is quite different. In declarative languages like SQL, you program what you want the result to be, not the procedure to get it. For instance, “give me all the people with the first name starting with the letter S from a certain table.” Unlike procedural programming (or even methods in object-oriented languages), you do not say how to get the information. This is, I believe, why many developers want to give the query optimizer “hints” on how to do its job.
That being said, I will list the top 8 Basic SQL Practices I live by, and attempt to enforce. Please feel free to comment adding your own (or post your own, linking back here).
In no particular order:
1) Always use explicit joins. If I mean …
[Read more]
Securing plain text passwords in MySQL is NEVER a good idea. As a
DBA you should take great care in protecting the users'
information. Fortunately MySQL provides you with several options
to protect passwords.
After a quick scan of the manual, you may be tempted to store the
password by applying the password function to it which is NOT a
good idea. MySQL itself advises against using PASSWORD to manage
application passwords.
Instead of using PASSWORD(), we can use SHA1 or MD5.
Unfortunately exploits for both of these encryption
functions have been quite common these days. Still, SHA1 or
MD5 keep your password more protected than storing them as plain
text.
You can apply SHA1 algorithm to a password string:
…
'stop')
echo -n 'Are you sure? (y|N)';
read SANITYCHECK;
if [ $SANITYCHECK != 'y' ]; then
echo "EXITING INPUT NOT y";
exit 1;
fi
Why? Well imagine you have 20 servers running mysql for the site.
You spent 100K to get these servers redundant, automatically
failover if a few go down-which gets the company a High
Availability score of 99.999% in the database backend and then
someone runs
dsh -N ALL_MY_DB_SERVERS /etc/init.d/mysql restart
when the intention was to restart another process like say the
monitoring process.
DOH!!
Back in January I posted a simple MySQL duplicate index finder tool. Because I read requests for such a tool on the MySQL Performance Blog I decided to open a new project on Google's code hosting service as well as a new blog to track it.
So if you are interested and maybe even want to contribute to it, go have a look.