MYSQL5FromSource

Differences between revisions 8 and 9
Revision 8 as of 2005-11-27 06:12:44
Size: 3756
Editor: c211-31-5-226
Comment: Spelling mistakes
Revision 9 as of 2006-01-13 16:35:18
Size: 3876
Editor: rrcs-70-61-230-226
Comment:
Deletions are marked like this. Additions are marked like this.
Line 21: Line 21:

{{{
sudo apt-get install libncurses5 libncurses5-dev
}}}

...or you won't be able to compile on a server install

Please discuss in [http://www.ubuntuforums.org/showthread.php?t=93725&page=1&pp=10 this thread on Ubuntu forums].

Tested in Breezy.

Prerequisites

You must download MYSQL5 (of course ;)

wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.16.tar.gz/from/http://mysql.localhost.net.ar/
tar xzvf mysql-5.0.16.tar.gz
cd mysql-5.0.16/

You must install packages :

sudo apt-get install make build-essential

You need development libraries

... but I'm not sure about which ones.

sudo apt-get install libncurses5 libncurses5-dev

...or you won't be able to compile on a server install

You need to create the user and group

sudo groupadd mysql
sudo useradd -g mysql mysql

Compilation optimisation

You can speed up Mysql with processor optimisation

If you have a different processor, change the CHOST, CFLAGS, CXXFLAGS.

If you don't know what it is, Take the Generic one!

attachment:IconsPage/IconWarning3.png The configuration for specific processors were not tested. If it compiles you're fine. If it doesn't try the generic one. Use only one of the following three

  • Athlon-tbird XP (AMD)

export CHOST="i686-pc-linux-gnu"
export CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -msse -mmmx  -mfpmath=sse"
export CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -msse -mmmx  -mfpmath=sse -felide-constructors -fno-exceptions -fno-rtti"
export CXX=gcc 
  • Pentium 4 (Intel)

export CHOST="i686-pc-linux-gnu"
export CFLAGS="-march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -msse -mmmx  -mfpmath=sse"
export CXXFLAGS="-march=pentium4 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer -msse -mmmx  -mfpmath=sse -felide-constructors -fno-exceptions -fno-rtti"
export CXX=gcc 
  • Generic

export CHOST="i686-pc-linux-gnu"
export CFLAGS="-mcpu=i686 -march=i686 -O3 -pipe -fomit-frame-pointer"
export CXX=gcc 

-fomit-frame-pointer should be omitted if you intend to debug. Otherwise leave it as it make mysql faster.

Configuration

This is a full configuration.

Do it in the MYSQL5 folder.

You can add/delete some of the options if you don't need it. This is intended to be a default mysql5 installation, again I'm not sure about this.

./configure \
--prefix=/usr/local/mysql \
--with-mysqld-user=mysql \
--without-debug \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--disable-shared \
--localstatedir=/usr/local/mysql/data \
--with-extra-charsets=none \
--enable-assembler \
--with-unix-socket-path=/tmp/mysql.socket

make
sudo make install

This will install mysql in /usr/local/mysql and data in /usr/local/mysql/data.

my.conf

Now create the conf based in any of the pre-build confs. For small servers I recommend my-medium.cnf

sudo cp support-files/my-medium.cnf /etc/my.cnf

You should edit this file for your needs.

Create GRANT tables

You must create the GRANT tables, and there is a very easy way to do so.

sudo /usr/local/mysql/bin/mysql_install_db --user=mysql

Changing Owners

sudo chown -R root  /usr/local/mysql
sudo chown -R mysql /usr/local/mysql/var
sudo chgrp -R mysql /usr/local/mysql

Testing

/usr/local/mysql/bin/mysqld_safe &
/usr/local/mysql/bin/mysql

You should add /usr/local/path/bin to your path so you can always use mysql, mysqldump, mysqladmin and some others right from the shell.

Starting Mysql at boot time

sudo cp support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo update-rc.d mysql defaults

When you restart mysql should be up if everything went ok.

CategoryDocumentation CategoryCleanup

MYSQL5FromSource (last edited 2008-08-06 16:24:23 by localhost)