Glenn Gillen

Installing Subversion and MySQL

I first got forced into using source control management (scm) systems when I first began working as part of a team of developers and there was times we'd need to edit the same parts of the system. It wasn't too long until those good habits trickled into the stuff I worked on by myself, and for good reason. It's nice to always have an undo option for those time when you go "Whoops!". Subversion (SVN to some) is the version control tool du jour for many, so lets keep it simple to begin with and start with that. I've included installing MySQL and Postgres as well, because well it's version control and databases finish off what you need to have your app deployed; and because they are all pretty straight-forward

Installing Subversion

So first subversion. We will go get the subversion source, the dependencies package (zlib compression support, support for http(s):// repositories, etc), and then configure and install:

wget http://subversion.tigris.org/downloads/subversion-1.4.5.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.4.5.tar.gz
tar zxf subversion-1.4.5.tar.gz
tax zxf subversion-deps-1.4.5.tar.gz
cd subversion-1.4.5
./autogen.sh
./configure --prefix=/usr/local --with-openssl --with-ssl=openssl
make; sudo make install; make clean;
cd ..

Installing MySQL

Now it's time for MySQL. You'll need to ensure you've got the g/c++ libraries installed for this one:

wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz/from/http://www.mirrorservice.org/sites/ftp.mysql.com/
tar zxf mysql-5.0.45.tar.gz
cd mysql-5.0.45
./configure --prefix=/usr/local
make; sudo make install; make clean;
./scripts/mysql_install_db
sudo cp support-files/mysql.server /etc/init.d/mysql
sudo chmod 755 /etc/init.d/mysql
sudo /sbin/chkconfig --level 345 mysql on
sudo /usr/sbin/adduser mysql -r
sudo chown -R root:mysql /usr/local/mysql
sudo chown -R mysql:mysql /usr/local/mysql/var
sudo cp support-files/my-medium.cnf /etc/my.cnf
cd ..

MySQL has just been installed, the standard tables populated, permissions, users, and configs have been setup and it is set to start itself on start-up/reboot. Now you'll need to issue a secure root password to the new server, so run the following command:

/usr/local/bin/mysqladmin -u root password 'new-password'

Replacing new-password with whatever you'd like your secure password to be. Once that is all done, start up the service manually as the mysql user:

sudo /usr/local/mysql/bin/safe_mysqld --user=mysql &

Glenn Gillen

I'm an advisor to, and investor in, early-stage tech startups. Beyond that I'm an incredibly fortunate husband and father. Working on a developer-facing tool or service? Thinking about starting one? Email me and let me know or come to one of our days to help make it a reality.