MySQL Server Installation auf Debian Lenny

2009-08-07 - kostaki 8 Kommentare »

Heutzutage gehört ein Datenbankserver genauso zu einem Webserver wie die Butter zum Brot. Die wohl meist verbreitete Kombination ist das LAMP System (LAMP Steht für Linux Apache MySQL und PHP). Linux sollte schon laufen und wie man den Apache und PHP installiert habe ich hier beschrieben. Der MySQL Server muss natürlich nicht auf dem gleichen Physischen Server laufen wie der Rest des LAMPs. In diesem kleinen (sehr kleinen) Tutorial beschreibe ich die Installation eines MySQL Servers auf einem frischen Debian Lenny.

$ aptitude install mysql-server

That's it. Der Installer fragt noch nach dem MySQL root Passwort und dann ist der Server auch schon fertig. Bei früheren Debian Versionen wurde das root Passwort leer gelassen und musste nach der Installation gesetzt werden. Hier haben die Debianer nach gelegt. Scheinbar haben viele Leute es dabei belassen, was natürlich ein Sicherheitsproblem ist. Noch schnell testen ob alles funktioniert:

$ mysql -uroot -ppassword

Hier ist noch eine gute Basis Config.

$ nano /etc/mysql/my.cnf
[client]
port				= 3306
socket				= /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket				= /var/run/mysqld/mysqld.sock
nice				= 0

[mysqld]
user				= mysql
pid-file			= /var/run/mysqld/mysqld.pid
socket				= /var/run/mysqld/mysqld.sock
port				= 3306
basedir				= /usr
datadir				= /var/lib/mysql
tmpdir				= /tmp
language			= /usr/share/mysql/english
skip-external-locking
bind-address			= 127.0.0.1
key_buffer			= 512M
max_heap_table_size		= 128M
max_allowed_packet		= 16M
thread_stack			= 128K
thread_cache_size		= 8
max_connections			= 250
table_cache			= 512
query_cache_limit		= 16M
query_cache_size		= 128M

# in diesem log landen alle Querys die als zu Langsam eingestuft wurde.
log_slow_queries		= /var/log/mysql/mysql-slow.log

# stuft alle Querys als zu langsam ein die 3 oder mehr Sekunden brauchen
long_query_time			= 2

log-queries-not-using-indexes

# Barkley DB Support abschalten. (Wird entfernt in 5.1.12)
skip-bdb

# Wer keine InnoDB Tabellen braucht sollte den Support hier abschalten
# Wer sie braucht sollte sich die Optionen dafür näher angucken bevor er das hier entfernt
skip-innodb

[mysqldump]
quick
quote-names
max_allowed_packet		= 16M

[isamchk]
key_buffer			= 16M

!includedir /etc/mysql/conf.d/

Nach dem bearbeiten natürlich noch den den mysql Server neu starten.

$ /etc/init.d/mysql restart

Wenn ihr viel auf der Konsole arbeitet und nicht immer das root Passwort eingeben wollt, könnt ihr euch in eurem home Verzeichnis eine '.my.cnf' anlegen, in der ihr das Passwort vorhalten könnt. Hier ein Beispiel für den root User.

$ nano /root/.my.cnf
[mysql]
user=root
password=rootpassword

[mysqldump]
user=root
password=rootpassword

Wenn man jetzt mysql/mysqldump eintippt ohne Passwort, werden die Daten aus dieser Datei genommen. Damit auch nur ihr Zugriff darauf habt noch die Zugriffsrechte richtig setzen.

$ chown root:root /root/.my.cnf
$ chmod 600 /root/.my.cnf

Ein weiterer Vorteil davon ist das das Passwort nicht per ps ausgelesen werden kann.

Ähnliche Artikel

  1. 8 Kommentare

  2. andre
    schrieb am 10.11.2009 um 11:19 Uhr

    ne schlaue sache wärs wenn man noch den neustart von mysql mit aufnehmen würde ;)

    /etc/init.d/mysql restart

    aber sonst sehr nice ;)

  3. kostaki
    schrieb am 10.11.2009 um 18:14 Uhr

    Danke für den Tipp. Ist angepasst. :)

  4. Marus
    schrieb am 10.12.2009 um 19:55 Uhr

    Übersehe ich was, oder hat deine Beispielconfig einen Fehler? Die läuft so nämlich nicht bei mir. Werd ich mir bei gelegenheit mal in den Logs ansehen.

  5. kostaki
    schrieb am 10.12.2009 um 20:45 Uhr

    Da brauche ich schon mehr Infos ;)

    Ich kopiere die als Basis eigentlich immer rein und sie funktioniert.

  6. Marus
    schrieb am 13.12.2009 um 00:02 Uhr

    Die hatte ich leider auch nicht. Er gab mir nur ein mysqld . . . failed! beim Start aus und das wars. Hab eben nochmal die Logs durchsucht, doch da steht leider nichts drin.

    //Später
    Ok habe raus gefunden, warum es nicht geht. Es liegt am Server. Obwohl er ein Gig Speicher haben soll, scheint da was nicht zu stimmen. Wenn ich die Zeilen für die LOG Pfade eingebe in der original Config, wie bei dir, gehts auch nicht mehr und er quittiert mir mit der Meldung von zu wenig Hauptspeicher. Auch die Erhöhung der Cache Limits findet er nicht gut. Ok ist ja nur ein Testserver zum spielen und der kommt ja dann eh weg.

  7. kostaki
    schrieb am 13.12.2009 um 10:36 Uhr

    Stimmt. Ich bin mir der Config von einem Normalen Server ausgegangen der so 1-2GB RAM haben muss. Bei nem VServer muss man natürlich mehr aufpassen wie viel Arbeitsspeicher man für den mysqld abstellt.

  8. Marus
    schrieb am 09.02.2010 um 11:58 Uhr

    So mal wieder einen Server eingerichtet und da bin ich auf einen netten Befehl gestoßen, der auch evtl. ganz interesant sein könnte:

    mysql_secure_installation

    Hier werden dann einige Sicherheitsabfragen für MySQL geklärt. Beispielsweise Setzen/Ändern des Root Passworts, Löschen der Test Datenbank und des Anonymus Zugangs und der Zugriff von Root über Remote. Hat wunderbar funktioniert.

  9. kostaki
    schrieb am 09.02.2010 um 17:20 Uhr

    Stimmt schon. Hier wird erklärt was es genau macht: http://dev.mysql.com/doc/refman/5.1/en/mysql-secure-installation.html

Kommentar schreiben

*

*