MySQL is a fast, multi-threaded, multi-user and robust SQL (Structured Query Language) database server. It provides a nifty API which makes it easy to integrate into other applications, including PHP.
The most important configuration parameters include:
Do not compile the set of benchmarking tests. Unless you will
specifically be using these, using this option will speed up
your build time.
This builds a faster MySQL server by only using the ISO-8859-1
(Latin1) characterset. Unless you are using a language other
than English, this is a good option to select.
Do not build a shared libmysqlclient.so library. If your
build fails and complains about not being able to create this
file, using this switch is a good work-around.
Build the MySQL client binary with suport for threads.
Use gcc as your c++ compiler instead of g++. This has the
advantage of not linking in libg++ and libstdc++, which
has been known to cause strange problems with MySQL.
Using libg++/libstdc++ also increases the size of the
mysqld binary without giving you any added benefits.
First of all, you should to add a user and group for mysqld to run as:
# groupadd mysql
# useradd -g mysql mysql
# groupadd mysql
# adduser (mysql)
To build MySql follow the next steps:
# mkdir /usr/local/mysql/data
# mkdir /usr/local/mysql/tmp
# mkdir /usr/local/mysql/var
# cd /usr/src
# tar -vzxf mysql-3.23-51.tar.gz
# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-unix-socket-path=/usr/local/mysql/tmp/mysql.socket
# make install
Change ownership of the MySQL binaries to root and ownership of the data directory to the user that you will run mysqld as:
# chown -R root /usr/local/mysql
# chown -R mysql /usr/local/mysql/var
# chgrp -R mysql /usr/local/mysql
# chmod 700 /usr/local/mysql/data
# chmod 700 /usr/local/mysql/var
# chmod 755 /usr/local/mysql/tmp
To start MySQL by hand, run:
# /usr/local/mysql/bin/safe_mysqld --user=mysql & (MySQL 3.x)
# /usr/local/mysql/bin/mysqld_safe --user=mysql & (MySQL 4.x)
If this is your first-time installation of MySQL, you'll need to set up the initial mysql database,
which contains all database privilege information, and establish a mysqld root password.
# mysqladmin -u root -p password 'new-password'
# mysqladmin -u root -h -p password 'new-password'