This post is SEO bait for people trying to scale MySQL’s write capacity by writing to both servers in master-master replication. The short answer: you can’t do it. It’s impossible. I keep hearing this line of reasoning: “if I make a MySQL replication ‘cluster’ and move half the writes to machine A and half of them to machine B, I can increase my overall write capacity.” It’s a fallacy. All writes are repeated on both machines: the writes you do on machine A are repeated via replication on machine B, and vice versa.
With all the news about the fork to MySQL to the new lean-mean
drizzling machine, I might have been the only one that actually
didn't really like the idea.
Taking out views, triggers, stored procedures, events and
everything else since MySQL 4.1 didn't really appeal to me. But
this coming from the guy that wrote "Using Business Rules in MySQL" and "Useful Ways to use Views", can you really
blame me?
I not happy, but they are probably right
Well, it seems to me like its going backwards. Albeit I
completely understand that its for the purpose of going
forwards.
Take out the stuff that the vast majority of MySQL users don't
use - mainly web site developers - and make it very fast and …
As you may know mysql fulltext search is not highly scalable. One of the options to get around this scalability limitation, which I prefer, is to use Sphinx. You can use Sphinx with out having to alter your mysql installation. But, if you would like to use from within mysql and not have to worry about how to pass data between Sphinx and MySQL, you can enable sphinxse (sphinx storage engine). It is not included with mysql by default so you will have to compile it yourself.
Here are the instructions on how to get sphinxse compiled with your mysql installation on CentOS x64. I am sure same instructions will work for other flavors but I have not tested it. I will be compiling the most current version of sphinx (0.9.8) with most current stable version of mysql (5.0.51b) at the time of the writing. Let’s get the appropriate …
[Read more]Today, the root file system on our public svn server nearly ran out of disk space. The reason? The /tmp directory was quickly filling up with temporary files created by websvn, which I set up parallel to the FishEye repository browser for testing purposes. A quick investigation of the apache log files revealed the culprit - a crawler from Microsoft was running haywire and decided to ignore the rules in the robots.txt file, even though it did actually looked at the file before!
Here is how robots.txt looked like (I now changed it to disallow everything):
User-agent: *
Disallow: /fisheye/
Disallow: /websvn/
If I am not mistaken, no crawler should actually consider going into the SVN browser directories. Some snippets from the apache log:
…[Read more]
Keith Murphy asks if you have ever edited your dump files before feeding them to
the database. And he recommends using sed. This reminds me
of a war story, when I was consulting in Milan. The customer
needed, among other things, to import a huge text file (created
by a third party application) into a MySQL database. I did
everything, including a cron job to load the data every day. By
the time I left for the airport, the third party application
hadn't yet provided its first sample, but since we knew the
fields list, it was a simple case of creating a LOAD DATA INFILE
command.
I was boarding my plane, when the customer called, saying that
the application was giving dates in the wrong format. Instead of
'YYYY-MM-DD', it was using the Italian human readable format
'DD/MM/YYYY'. No Internet was available, and with just a few
minutes …
A new MySQL product is born. The preview release of MySQL Connector/C++ is available for download at http://downloads.mysql.com/forge/connector_cpp_preview . Connector/C++ is a new database driver to connect C++ applications to the MySQL Server. The preview mimics parts of the JDBC 3.0 API and is licensed under the terms of the GPL (plus FLOSS License Exception). Have a look at the announcement and the MySQL Connector/C++ wiki page for further “official” …
[Read more]A new MySQL product is born. The preview release of MySQL Connector/C++ is available for download at http://downloads.mysql.com/forge/connector_cpp_preview . Connector/C++ is a new database driver to connect C++ applications to the MySQL Server. The preview mimics parts of the JDBC 3.0 API and is licensed under the terms of the GPL (plus FLOSS License Exception). Have a look at the announcement and the MySQL Connector/C++ wiki page for further “official” …
[Read more]A new MySQL product is born. The preview release of MySQL Connector/C++ is available for download at http://downloads.mysql.com/forge/connector_cpp_preview . Connector/C++ is a new database driver to connect C++ applications to the MySQL Server. The preview mimics parts of the JDBC 3.0 API and is licensed under the terms of the GPL (plus FLOSS License Exception). Have a look at the announcement and the MySQL Connector/C++ wiki page for further “official” …
[Read more]
Its 12:30AM (00:30 for you Euros). I am watching The Daily
Show on Tivo. All is well. Then the phone
beeps.
MySQL Main is critical
SSH? no.
Digi console? no.
About a week ago, we had a mysqldump file that was corrupt.
We cleaned it up. My worst fears came to my mind. We
tried power cycling it. It did not come back.
While my coworker was dealing with the facilily people, I worked
on the backup server. Had to ensure the last full backup
was in place and apply the incremental data. Suddenly, my
SSH connection dies. OMG. THAT DUMB A** GUY POWER
CYCLED THE WRONG BOX!!! --- FS corrupted. Damn you
ReiserFS!
By now, it's 4AM. Tech took an hour to get to the
rack. It is 20 feet from his cubicle. I get in the
car. I am two hours away from the …
“MySQL Proxy is a simple program that sits between your client and MySQL server(s) that can monitor, analyze or transform their communication. Its flexibility allows for unlimited uses; common ones include: load balancing; failover; query analysis; query filtering and modification; and many more.”
The flexibility of MySQL Proxy is based on the fact that every aspect is scriptable with Lua. Because I am new to MySQL Proxy and the Lua language I tried to implement a very simple script that waits for incoming SQL queries, tokenizes them and tries to detect SQL Injection heuristically by searching for certain disallowed SQL functions, databases, tables, statements or comments. When an SQL query is believed to contain an SQL injection is it not executed and a “Possible SQL …
[Read more]