I spent about an hour compiling MySQL Workbench from source earlier today. After about 20 newly satisfied dependencies and an hour of actual building, I fired it up and discovered I wasn’t able to connect to any MySQL server through an SSH tunnel, which I have to be able to do.
I was able to find a deb package, mysql-workbench-gpl-5.2.39-1ubu1004-i386.deb, that seems to work quite well on Debian Squeeze 6.0.6. The package was mentioned in this forum post at debian.net. The package itself was the MySQL-provided deb for Ubuntu 10.04.
After I installed that deb, MySQL Workbench was able to connect to a MySQL server through an SSH tunnel. I must, must remember this for future Debian Squeeze installs.
Tech-Evangelist has put together an excellent cheatsheet for MySQL. There’s lots of other MySQL cheatsheets out there, but this one is unique in the fact that it gives examples of usage rather than just snippets of code.
This cheatsheet also includes a summary of commonly used MySQL data types, which will be really helpful to me. I can’t tell you how many times in a week I hit the MySQL website looking for specs on a certain data type.
If you think this cheatsheet would be useful to you, head on over to Tech-Evangelist to download the PDF.
The FEDERATED MySQL storage engine is the coolest thing EVER! Seriously. It’s already saved me from having to do a whole bunch of synchronization coding. I can only imagine how it’ll come in useful in the future.
So, here’s my situation. I have two mysql servers sitting behind a firewall at “location 1”. People at “location 2” need to write some software to connect to both mysql servers at location 1. However, MyODBC gets confused when connecting to the same hostname on two different tcp ports, or so I’m told.
Anyway, since I was basically told that there’s no way to connect to two seperate mysql servers behind one firewall, I got to thinking. So, I set off searching google for method for mirroring data in MySQL and came across the FEDERATED storage engine.
Now, the servers at location 1 are on a VPN with the network at location 3, my location. So, my network (at location 3) can see the network at location 1 without the firewall getting in the way. Since that’s the case here, I can connect to the default mysql port, 3306, on both servers because I can see their LAN IP, where the people at location 2 can’t (no VPN).
So, we’ve got the network flow figured out, now we can go about getting the FEDERATED storage engine in MySQL working. First, you’ll need MySQL 5.x. I chose MySQL 5.0.24 as it’s the latest stable 5.x release.
To enable the FEDERATED storage engine in mysql 5, you must pass the –with-federated-storage-engine option when running configure. That’s pretty much all that’s required to start using the FEDERATED storage engine. Most linux distributions probably have a mysql 5 package that comes with the FEDERATED engine on already, although Slackware does not currently. Continue reading “The FEDERATED MySQL Storage Engine”