NedLinux document repository

MySQL Compileren en Configureren

Geschreven door Marc Mes


Deze document repository is opgezet omdat er diverse handige howto's op alleen het forum waren gepost, en niet ergens op het net te vinden waren afgezien van het forum zelf. Vragen of opmerkingen over dit document kan je rustig stellen op het documentatieontwikkelingsforum van Nedlinux.

Benodigdheden:

GNU gunzip, GNU tar, een ANSI C++ Compiler als GCC (2.95.2), GNU make (3.75).

En MySQL zelf natuurlijk. Bij het schrijven van deze handleiding heb ik versie 3.23.53 gebruikt. Deze is te downloaden vanaf: http://www.mysql.com/Downloads/MySQL-3.23/mysql-3.23.53.tar.gz

Let er wel op dat je dus de MySQL Source Code voor Linux download op de website van MySQL. En niet de binary versie!

Ok aan de slag dan maar. Ik beschrijf in deze korte handleiding (howto) de installatie & configuratie van de Database Server MySQL. Na deze handleiding zou je mijn handleiding over de Apache Webserver kunnen lezen hierin beschrijf ik de compilatie en de configuratie van Apache + PHP met ondersteuning van onze kersverse MySQL.

1. Log in als root gebruiker op je server.

2. Maak de groep en gebruiker mysql aan, deze maken we aan voor de veiligheid.

groupadd mysql useradd -g mysql mysql

3. Pak de MySQL source code uit.

tar -zxvf mysql-3.23.53.tar.gz

4. Ga de source directory in

cd mysql-3.23.53

5. Voer het configure script uit, deze zal checken of je systeem over de juiste compilers beschikt en zal indien dit het geval is de makefile aanmaken.

./configure --prefix=/usr/local/mysql

6. Voer het make commando uit om de boel te compileren.

make

7. Voer het make install commando uit om MySQL keurig netjes te installeren in /usr/local/mysql

make install

8. Voer nu terwijl we nog steeds in de MySQL Source Directory staan het volgende commando uit om de standaard MySQL Administratie Database aan te maken die nodig is voor de werking van MySQL.

scripts/mysql_install_db

9. We gaan nu de rechten van mysql directory's goedzetten. Dit ook weer voor de veiligheid.

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

10. Vervolgens copieeren we het MySQL configuratie bestand naar de juiste lokatie.

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

11. Ga nu naar de MySQL bin directory.

cd /usr/local/mysql/bin

12. We gaan nu de MySQL Server (de mysqld daemon) opstarten.

./safe_mysqld --user=mysql &

Als het goed is krijg je nu het volgende te zien. Dit betekend dat je database server draait!

root@airwolf:/usr/local/mysql/bin# ./safe_mysqld --user=mysql & [1] 29475 root@airwolf:/usr/local/mysql/bin# Starting mysqld daemon with databases from /usr/local/mysql/var

Druk een keer op enter zodat je weer kan typen.

13. Voer nu het volgende commando uit om op de MySQL Database Server een root wachtwoord in te stellen.

./mysqladmin -u root password 'vul_hier_je_eigen_mysql_wachtwoord_in'

14. Ok, de MySQL Server is nu volledig geconfigureerd, we gaan nu proberen of we er op kunnen inloggen!

./mysql -u root -p

Voer nu het root wachtwoord in dat je bij stap 13 hebt opgegeven.

Als alles goed is gegaan zit je nu in de MySQL Shell (MySQL DB Monitor)

15. Het inloggen is gelukt en nu zijn we natuurlijk razend benieuwd wat voor databases MySQL al voor ons heeft voorge?nstalleerd. Dit gaan we bekijken met het volgende commando.

SHOW DATABASES;

Als het goed is zie je nu een database mysql en test. De eerste is heel erg belangerijk. Hierin wordt hele belangerijke informatie opgeslagen die MySQL nodig heeft om te kunnen functioneren. O.a. gebruikers informatie, statistieken e.d.

De test database bevat helemaal geen tabellen vandaar dat we eens gaan kijken in de database mysql.

USE mysql; SHOW TABLES;

Is dit gelukt dan functioneerd je MySQL Database Server 100%. We loggen uit.
exit

16. Nu moeten we nog 1 ding doen. En dat is zorgen dat de MySQL Server bij het opstarten van de Linux Server direct gestart wordt. Dit opstartsysteem verschilt per distributie heel erg, vandaar dat we de verschillende mogelijkheden hieronder beschrijven.

BSD Init:

/etc/rc.d/rc.local

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

Zorg altijd dat de /tmp directory writable is voor de MySQL user!!

Mocht je nog vragen hebben mail me op marc@nedlinux.nl