mySQL logfiles in der Konsole

Diskutiere mit über: mySQL logfiles in der Konsole im Datenbanksysteme für das Web Forum

  1. lupusoft

    lupusoft Thread Starter MacUser Mitglied

    Beiträge:
    250
    Zustimmungen:
    4
    Registriert seit:
    05.01.2004
    Moin,
    ich bin gerade dabei, eine mySQL Bank von 10.2.8 auf einen G5 mit 10.3.5 zu übertragen. Ein sehr nettes feature der Panther Konsole ist ja, dass man nun die verschiedenen (error)log Dateien "in einer Hand" hat. Als Unix-DAU würde es mir sehr entgegen kommen, wenn ich die diversen mySQL logs ebenfalls aus der Konsole heraus anschauen könnte. Leider funktioniert das nicht so, wie ich es mir erhofft habe. Hier mal eine kurze Beschreibung, was ich versucht habe:
    1. mysql-max-4.0.21 installiert
    2. eine my.cnf Datei in /etc angelegt u.a. mit folgenden Einträgen

    log-update = /var/log/mysql/update.log
    log-error = /var/log/mysql/error.log
    log = /var/log/mysql/logfile.log

    3. einen Ordner mysql in /var/log/ angelegt, der zunächst die gleichen Rechte wie der übergeordnete hatte, nämlich sowas wie drwxr-xr-x 2 root wheel.
    4. den mysql Daemon gestartet und in der Konsole nachgeschaut. War natürlich nix zu sehen.
    5. Im Terminal nachgeschaut, ob die logfiles da sind. Sind sie:

    /var/log//mysql:
    total 24
    drwxr-xr-x 5 mysql wheel - 170B 19 Oct 12:10 ./
    drwxr-xr-x 36 root wheel - 1K 19 Oct 11:54 ../
    -rw-rw---- 1 mysql wheel - 2K 19 Oct 12:11 error.log
    -rw-rw---- 1 mysql wheel - 444B 19 Oct 12:11 logfile.log
    -rw-rw---- 1 mysql wheel - 296B 19 Oct 12:11 update.log


    Was ich vermute, ist, dass mySQL nach dem Start den Owner und die Rechte auf mysql bzw. wheel gesetzt hat. Da liegt der Hund begraben, oder?
    Fällt irgendwem was ein, wie ich die Konsole dazu bringen könnte, die mySQL logfiles zu lesen? Wie macht ihr das? Jedesmal mit sudo ins Terminal wie in diesem thread beschrieben http://www.macuser.de/forum/showthread.php?t=10606 ?

    Danke für eure Vorschläge, Lupus
     
  2. tobias.beuth

    tobias.beuth MacUser Mitglied

    Beiträge:
    142
    Zustimmungen:
    0
    Registriert seit:
    06.09.2004
    Vielleicht reicht es ja schon wenn du die drei Files unter deinem Account anlegst bevor du MySQL das erste mal startet.
    Wenn sie nicht da sind muss MySQl sie natürlich erstellen, und das kann es nur mit seinem Systemaccount. Wenn die Files schon da sind müssen sie auch nicht erstellt werden.
     
  3. lupusoft

    lupusoft Thread Starter MacUser Mitglied

    Beiträge:
    250
    Zustimmungen:
    4
    Registriert seit:
    05.01.2004
    Hi, danke für die Antwort.
    Soll heissen, ich könnte sie theoretisch auch im Nachhinein umzwingen, oder? Werde gleich mal schauen, ob das geht. Ich befürchte allerdings, dass mySQL die Rechte dann wieder ändert (genau wie beim Ordner darüber). Ich blick diese ganze Rechtevergabe sowieso nicht.
     
  4. lupusoft

    lupusoft Thread Starter MacUser Mitglied

    Beiträge:
    250
    Zustimmungen:
    4
    Registriert seit:
    05.01.2004
    Also hier der Versuch. Zunächst die Benutzerrechte neu eingestellt.

    /var/log//mysql:
    total 24
    drwxrwxr-x 5 root wheel - 170B 19 Oct 12:10 ./
    drwxr-xr-x 36 root wheel - 1K 19 Oct 11:54 ../
    -rwxrwxr-x 1 root wheel - 2K 19 Oct 16:07 error.log
    -rwxrwxr-x 1 root wheel - 773B 19 Oct 16:06 logfile.log
    -rwxrwxr-x 1 root wheel - 296B 19 Oct 12:11 update.log

    In die Konsole gegangen und nachgeschaut: die drei log Dateien erscheinen nun zunächst mal in der linken Spalte wenn ich den mysql Ordner öffne. Ein Klick auf error.log zeigt mir den Inhalt pepp
    Danach den mysqld neu hochgefahren und wieder in die Konsole gewechselt mit dem (noch angezeigten) error log:

    041019 16:14:30 mysqld started
    041019 16:14:30 Warning: Setting lower_case_table_names=2 because file system for /xxx/xxx/data/ is case insensitive
    /usr/local/mysql/bin/mysqld: File '/var/log/mysql/logfile.log' not found (Errcode: 13)
    041019 16:14:30 Could not use /var/log/mysql/logfile.log for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.
    /usr/local/mysql/bin/mysqld: File '/var/log/mysql/update.log' not found (Errcode: 13)
    041019 16:14:30 Could not use /var/log/mysql/update.log for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.
    041019 16:14:31 InnoDB: Started
    /usr/local/mysql/bin/mysqld: ready for connections.
    Version: '4.0.21-max-log' socket: '/tmp/mysql.sock' port: xxx Official MySQL-max binary

    Mit anderen Worten, er mag es wohl nicht wenn die beiden anderen nicht von ihm stammen. :( Noch lustiger:

    /var/log//mysql:
    total 24
    drwxrwxr-x 5 root wheel - 170B 19 Oct 12:10 ./
    drwxr-xr-x 36 root wheel - 1K 19 Oct 11:54 ../
    -rwxrwxr-x 1 mysql wheel - 3K 19 Oct 16:21 error.log
    -rwxrwxr-x 1 root wheel - 773B 19 Oct 16:06 logfile.log
    -rwxrwxr-x 1 root wheel - 296B 19 Oct 12:11 update.log

    Das error.log hat er eigenmächtig wieder auf Owner mysql gesetzt kopfkratz
    Naja, zumindest ein Teilerfolg. Guter Hinweis, ich hab gleich zu kompliziert gedacht ;) Hat Du andere Vorschläge, was ich als Benutzer/Gruppe nehmen sollte?
     
  5. aguilera

    aguilera MacUser Mitglied

    Beiträge:
    48
    Zustimmungen:
    0
    Registriert seit:
    09.03.2004
    Also Dein Problem ist, dass Du "su" nicht benutzen willst?
    Dann hast Du jetzt (mindestens) zwei Möglichkeiten:
    entweder Du lässt User und Gruppe, wie mysql es haben will, gibst (sofern noch nötig) der Gruppe schreibrecht und fügst den Benutzer, der sich die logs ansehen soll, der Gruppe hinzu.
    Oder Du machst (das fände ich (unter diesen Umständen) eleganter) eine neue Gruppe auf, packst den mysql- User und alle, die die Logs lesen sollen, dort hinein, änderst die Gruppe der logfiles auf die neue Gruppe und gibst ihr schreibrechte.
     
  6. tobias.beuth

    tobias.beuth MacUser Mitglied

    Beiträge:
    142
    Zustimmungen:
    0
    Registriert seit:
    06.09.2004
    Es gibt noch eine Einstellung bezüglich des Users unter dem sich MySql ausgibt.
    mysql_daemon_user=username
    das gleiche müsste auch für die gruppe gelten
    mysql_daemon_group=gruppenname

    dann könntest du ja mysql unter deinem account ausführen.

    vielleicht kannst du mysql auch mit dir in eine gruppe packen dann müsstest du ja auch lesen und schreiben können.
     
  7. lupusoft

    lupusoft Thread Starter MacUser Mitglied

    Beiträge:
    250
    Zustimmungen:
    4
    Registriert seit:
    05.01.2004
    Moin,
    danke erstmal für eure Vorschläge. Was ich vergass zu erwähnen, ist, dass die Bank über PHP und Apache im Internet stehen soll. Von daher bin ich mir unsicher, wie paranoide man sein darf/muss was die Benutzerrechte angeht.
    Irgendwo in der mySQL Anleitung wird erwähnt, dass man auf keinen Fall root als mysql user eintragen soll. Inwieweit das auf mich als admin user zu übertragen ist, weiss ich nicht. Dafür hab' ich zu wenig Ahnung, aber aus dem Bauch heraus würde ich sagen, das lass ich lieber.
    Mittlerweile sind meine Einstellungen für die log-files folgendermassen:

    drwxr-x--- 6 mysql admin 204B 20 Oct 11:05 ./
    drwxr-xr-x 37 root wheel 1K 20 Oct 03:15 ../
    -rw-r----- 1 mysql admin 10K 20 Oct 12:39 error.log
    -rw-r----- 1 mysql admin 5K 20 Oct 12:39 logfile.log
    -rw-r----- 1 mysql admin 807B 20 Oct 12:40 slowqueries.log
    -rw-r----- 1 mysql admin 740B 20 Oct 12:39 update.log

    Der übergeordnete mysql Ordner muss scheinbar execute Rechte für admin haben, damit ich ihn in der Konsole aufklappen kann. Ansonsten reicht es für die einzelnen log Dateien wenn admin Leserechte hat. Die Anzeige in der Konsole funktioniert und mySQL beschwert sich auch nicht :)
    Soweit, so gut. Jetzt wüsste ich nur noch gerne, ob es irgendeine Art von Sicherheitsrisiko darstellt, dass der mysql Ordner execute Rechte für mysql und admin hat.

    Gruss, Lupus
     
  8. tobias.beuth

    tobias.beuth MacUser Mitglied

    Beiträge:
    142
    Zustimmungen:
    0
    Registriert seit:
    06.09.2004
    Stimmt, der ganze Pfad zur Datei muss lesbar sein.
    Ich glaub das hat ich auch schonmal.

    Also ich denke solang apache nicht in der admin-gruppe ist, kannst du ganz beruhigt sein. Wenn nun mysql in der admin gruppe ist hat es natürlich auch alle gruppen rechte der admin gruppe. nicht die owner rechte. man kann mit mysql auch auf dem filesystem operieren. man kann schreiben und lesen. man kann allerdings nicht überschreiben, was schonmal ein vorteil ist. aber lesen nach wie vor. man kann allerdings dieses recht für mysql user abdrehen. in der mysql datenbank, usertabelle, File_priv auf 'N' setzen. wenn du sichere skripte schreibst, bei denen du sicher sein kannst das man keine SQL-Injection bei ihnen machen kann muss dich das allerdings nicht interessieren.

    bedenktlicher ist eigentlich was der apache user kann. den deine php-skripte laufen unter diesem user. und mit php und den entsprechenden rechten kann man alles machen.

    naja nun läuft ja alles. wenn du noch fragen hast raus damitr.
     
Die Seite wird geladen...
Ähnliche Themen - mySQL logfiles Konsole Forum Datum
Mysql - Duplicates abfangen, mit php oder mit unique keys? Datenbanksysteme für das Web 08.03.2016
mysql abfrage optimieren Datenbanksysteme für das Web 26.03.2014
php - mysql_error != mysqli_error - mysql meldet Fehler, mysqli nicht Datenbanksysteme für das Web 05.07.2013
Fragen & Hilfe zu Projekt mit php & mySQL Integration Datenbanksysteme für das Web 01.07.2013
Fragen zu MySql Datenbanksysteme für das Web 04.03.2013

Diese Seite empfehlen

Benutzerdefinierte Suche