How to install MySQL on FreeBSD
Note: Tested on FreeBSD 9
Step 1 – Install FreeBSD
- First install FreeBSD. Instructions for installing FreeBSD is contained in this article.
How I install FreeBSD 9?
(Legacy) How I install FreeBSD? - Second update FreeBSD and install the ports tree. Instructions for this are in this article.
What are the first commands I run after installing FreeBSD?
Step 2 – Installing MySQL
Install MySQL from Ports
- Change to the directory of the mysql55-server port.
# cd /usr/ports/databases/mysql55-server
- Now install mysql55-server with ‘make install’.
# make install
MySQL 5.5 Server (and MySQL 5.5 client) will download, compile, and install automagically for you.
Note: You may be wondering about the WITH_CHARSET option that used to exist. This is not necessary during compile and install and we will set the character set in a later step. Don’t start the MySQL service until we make these changes.
Installing MySQL from Packages
- Install easily as a binary package with this simple command.
pkg_add -r mysql55-server
Step 3 – Configure MySQL
Configuration of MySQL is done in the my.cnf file.
Example 1 – Configuring mysql to use UTF8
For this example, we will change our server to use UTF8.
- Change to the /usr/local/etc/ directory. This is the default location for the my.cnf file.
cd /usr/local/etc/
- Add the following to the my.cnf file.
# # # > /usr/local/etc/my.cnf echo '[mysqld]' >> /usr/local/etc/my.cnf echo character-set-server=utf8 >> /usr/local/etc/my.cnf echo collation-server=utf8_general_ci
Note: FreeBSD has multiple example my.cnf files here: /usr/local/share/
- my-huge.cnf
- my-innodb-heavy-4G.cnf
- my-large.cnf
- my-medium.cnf
- my-small.cnf
Step 4 – Configure MySQL to start on boot
- Add the following lines to the /etc/rc.conf file.
#
#echo # MySQL 5.5 Server >> /etc/rc.conf
echo 'mysql_enable="YES"' >> /etc/rc.conf - Now start your server.
# /usr/local/etc/rc.d/mysql-server start
Step 5 – Secure your MySQL installation
MySQL documentation covers this and I’ll not repeat it here. Instead, go here:
2.2 Securing the Initial MySQL Accounts
Integration with Apache and PHP
If you want to integrate Apache and PHP see these articles.