Weiter Zurück [Inhalt] Online Suche im Handbuch

6.2 Start von MySQL

Um MySQL zu starten, muß man sich bei LINUX unnötigerweise als root einloggen, da die S.u.S.E. Startup Skripte MySQL unnötigerweise als ROOT starten möchten. Dies stellt natürlich ein gravierendes Sicherheitsproblem dar, welches im Firewall Handbuch genauestens erläutert ist. Falls Sie gedenken, einen eigenen MySQL Server im Internet zu betreiben, sollten Sie dringend diese Kapitel durchlesen. In einem späteren Kapitel wird genau beschrieben, wie man MySQL korrekt nur mit User-Rechten startet, ohne daß die Funktionalität beeinträchtigt wird.

Falls Sie sich jedoch mit LINUX und MySQL nicht auskennen und beabsichtigen, einfach nur einen MySQL Server im Internet zu nutzen, schauen Sie sich doch einfach unser Angebot an: http://www.rent-a-database.de.

bash-2.02$ pwd
/platte2/home/user01
bash-2.02$ su
Password:
bash-2.02# whoami
root           

MySQL sollte niemals mit ROOT Rechten gestartet werden, einfache User Rechte reichen völlig aus. Wir beschreiben nun trotzdem den Start des MySQL Binary unter S.u.S.E. LINUX 6.0 ohne sicherheitsrechnische Vorkehrungen:

Wir starten nun mit /sbin/init.d/mysql start den Server:

bash-2.02# /sbin/init.d/mysql start
Starting service MySQL.                                done
bash-2.02# 
Der Server ist nun gestartet, leider haben wir keine Informationen über Versionsnummer, Portnummer, Verzeichnisse u.s.w. Wie findet man das heraus ?

Hierzu verwenden wird einige elementare Netzwerk Befehle unter UNIX:

bash-2.02# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
          UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1
          RX packets:177 errors:0 dropped:0 overruns:0 frame:0
          TX packets:177 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0

eth0      Link encap:Ethernet  HWaddr 00:80:AD:30:B6:CA
          inet addr:10.0.0.5  Bcast:10.0.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:195 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0
          Interrupt:10 Base address:0x6600

ifconfig zeigt uns an, mit welcher IP-Nummer unser MySQL Server im Netz erreichbar ist. Schließlich möchten wir die SQL Datenbank ja allen Usern im Netz unter ACCESS, Winword und EXCEL zur Verfügung stellen.

bash-2.02# netstat -an|more
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:98              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:40001           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:20005           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:6711            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:113             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:79              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:513             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:515             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:37              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:19              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:13              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:9               0.0.0.0:*               LISTEN
--More--

Unter S.u.S.E. LINUX sind alle möglichen unnötigen Programme gestartet, die sich an irgendwelche Ports und Netzwerkkarten bunden sind, und somit ein Sicherheitsrisiko darstellen. Uns interessieren im Moment nur die Ports 3333 oder 3306. Die ältere Version von MySQL benutzt Port 3306, die neuere den Port 3333. In der ersten Zeile schon kann man ablesen, daß MySQL den Port 3306 verwendet...

Dieser SQL Server ist also von außen unter der IP-Nummer 10.0.0.5 und der Portnummer 3306 zu erreichen. Das sollten Sie sich irgendwo notieren. Falls Sie unser Rent - A - Database Angebot nutzen, schauen Sie bitte in die persönliche Kundeninformation hinein. Dort finden Sie alle Angaben über IP-Nummer und Ports Ihres Datenbank - Servers.

S.u.S.E. Linux hat einige Eigenheiten bei der Grundkonfiguration, die einige Dinge verlangsamen können. Ohne diese Einträge reagiert LINUX beim Einloggen über das Netzwerk mit TELNET z.B. nur sehr verzögert.

Der Grund liegt darin, daß in der Datei /etc/inetd.conf leider einige Dienste, wie echo, chargen, discard deaktiviert wurden. Mit dem Editor joe (Hilfe mit STRG-k h, speichern mit STRG-k x) sollten die Einträge nach einer Korrektur so aussehen:

bash-2.02# more /etc/inetd.conf
# See "man 8 inetd" for more information.
#
# If you make changes to this file, either reboot your machine or send the
# inetd a HUP signal:
# Do a "ps x" as root and look up the pid of inetd. Then do a
# "kill -HUP <pid of inetd>".
# The inetd will re-read this file whenever it gets that signal.
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
echo    stream  tcp     nowait  root    internal
echo    dgram   udp     wait    root    internal
discard stream  tcp     nowait  root    internal
discard dgram   udp     wait    root    internal
daytime stream  tcp     nowait  root    internal
daytime dgram   udp     wait    root    internal
chargen stream  tcp     nowait  root    internal
chargen dgram   udp     wait    root    internal
time    stream  tcp     nowait  root    internal
time    dgram   udp     wait    root    internal
#                                                      
Mit dem Kommando: killall inetd; inetd starten Sie den INETD Server neu. Die Probleme sollten nun nicht mehr auftreten.

Die Datei /etc/hosts sollte alle IP-Nummern enthalten, mit denen Sie aus dem LAN auf den SQL Server zugreifen möchten:

bash-2.02# more /etc/hosts
#
# hosts         This file describes a number of hostname-to-address
#               mappings for the TCP/IP subsystem.  It is mostly
#               used at boot time, when no name servers are running.
#               On small systems, this file can be used instead of a
#               "named" name server.
# Syntax:
#
# IP-Address  Full-Qualified-Hostname  Short-Hostname
#
#10.0.0.9       www2.intra.net          www2
#10.0.0.9       www.intra.net           www
10.0.0.5        tunix.intra.net         tunix
10.0.0.1        client1.intra.net       tester1
127.0.0.1       localhost
bash-2.02#

Ein bessere Alternative ist das Aufsetzen des DNS-Servers. Was für Einsteiger bisher noch ein Graus war, läßt sich mit diesem Toolkit einfach erledigen. Hierzu können Sie das Little-Idiot Toolkit verwenden. Die Einträge in den DNS Server wenden dann automatisch auch in die Datei /etc/hosts geschrieben.


Weiter Zurück [Inhalt] Online Suche im Handbuch